【Java】classpath的理解及其使用方式 - Go语言中文社区

【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:userscjfMusiccn.com.agree.thread路径下

在这里插入图片描述
其他两个类放在另外路径下:(对,有点操蛋)
在这里插入图片描述
此时想运行ThreadDemo,如果只指定其他两个类的路径,不加;。它会找不到主类。
在这里插入图片描述

** 凡事指定了-classpath,建议加上.,且每个路径尾部都加上;分割,可避免执行中出现一些想不到的情况。**
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cjf1002361126/article/details/90740442
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 22:53:29
  • 阅读 ( 965 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢