【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,建议加上.,且每个路径尾部都加上;分割,可避免执行中出现一些想不到的情况。**
在这里插入图片描述

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