【Java】classpath的理解及其使用方式

詳細篇:https://blog.csdn.net/wk1134314305/article/details/77940147


** 凡事指定了-classpath,每個路徑尾部都必須加上;分割,這樣可避免執行中出現一些想不到的情況。** (大概是因爲:如果不加;分割,java默認直接在你寫的路徑加上.;導致出錯,然後就會報:找不到當前路徑的類)。

要考慮classpath 各個路徑引用的先後順序。Java解釋器將按照它們在classpath變量中出現的順序來查找目錄中的類。


  • 對於包含.class文件的.jar或.zip文件,classpath以.zip或.jar文件的名稱結尾
java -classpath xx.jar; cn.com.agree.Test 

注意: -classpath 默認路徑爲 .,代表當前路徑。

特殊情況:

假設 cn.com.agree.thread 下有三個類,ThreadDemo.java,MyThread.java,MyThreadRunnable.java 。ThreadDemo導入了其他兩個類。
(其實就是說,他們三個是同一個包名,且存在某一個類引用了其他同包名的類)

package cn.com.agree.thread;
public class ThreadDemo {  
	public static void main(String[] args) throws InterruptedException {	   
		/**
	    * 三個線程,爲單線程,無法共享count變量,故共售出15張票
	    */
	   MyThread myThread1 = new MyThread("窗口1");
	   MyThread myThread2 = new MyThread("窗口2");
	   MyThread myThread3 = new MyThread("窗口3");
	   myThread1.start();
	   myThread2.start();
	   myThread3.start();	   
	   System.out.println("========");
	   Thread.sleep(2000);
	   MyThreadRunnable myThreadRunnable1 = new MyThreadRunnable();
	   Thread thread1 = new Thread(myThreadRunnable1,"窗口4");
	   Thread thread2 = new Thread(myThreadRunnable1,"窗口5");
	   Thread thread3 = new Thread(myThreadRunnable1,"窗口6");
	   thread1.start();
	   thread2.start();
	   thread3.start();	   
	   System.out.println("========");
	   Thread.sleep(2000);
	   /**
	    * 同樣不會共享
	    */
	   MyThreadRunnable myThreadRunnable4 = new MyThreadRunnable();
	   MyThreadRunnable myThreadRunnable5 = new MyThreadRunnable();
	   MyThreadRunnable myThreadRunnable6 = new MyThreadRunnable();
	   Thread thread4 = new Thread(myThreadRunnable4,"窗口7");
	   Thread thread5 = new Thread(myThreadRunnable5,"窗口8");
	   Thread thread6 = new Thread(myThreadRunnable6,"窗口9");
	   thread4.start();
	   thread5.start();
	   thread6.start();	   
    }
}

現在將ThreadDemo.class放在 c:\users\cjf\Music\cn.com.agree.thread路徑下

在這裏插入圖片描述
其他兩個類放在另外路徑下:(對,有點操蛋)
在這裏插入圖片描述
此時想運行ThreadDemo,如果只指定其他兩個類的路徑,不加;。它會找不到主類。
在這裏插入圖片描述

** 凡事指定了-classpath,建議加上.,且每個路徑尾部都加上;分割,可避免執行中出現一些想不到的情況。**
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章