社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
详细篇:https://blog.csdn.net/wk1134314305/article/details/77940147
** 凡事指定了-classpath,每个路径尾部都必须加上;
分割,这样可避免执行中出现一些想不到的情况。** (大概是因为:如果不加;
分割,java默认直接在你写的路径加上.;
导致出错,然后就会报:找不到当前路径的类)。
要考虑classpath 各个路径引用的先后顺序。Java解释器将按照它们在classpath变量中出现的顺序来查找目录中的类。
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:userscjfMusiccn.com.agree.thread路径下
其他两个类放在另外路径下:(对,有点操蛋)
此时想运行ThreadDemo,如果只指定其他两个类的路径,不加;
。它会找不到主类。
** 凡事指定了-classpath,建议加上.
,且每个路径尾部都加上;
分割,可避免执行中出现一些想不到的情况。**
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!