关于java:我应该如何设置CLASSPATH?

How should I set CLASSPATH?

我以前做过:

CLASSPATH=".:/home/phoenies/jdk1.6.0_17/lib/tools.jar:/home/phoenies/jdk1.6.0_17/lib/dt.jar"

但今天有篇文章说我应该这样做:

CLASSPATH=".:/home/phoenies/jdk1.6.0_17/lib"

如果我这样做,它会搜索lib中的所有jar文件吗?所以这条路可能比较短?


因为您使用的是JDK6,所以可以使用类路径通配符:classpath=":/home/phoenies/jdk1.6.0_17/lib/*"将匹配lib中的所有jar/

查看http://java.sun.com/javase/6/docs/technotes/tools/windows/class path.html有一个叫做"了解类路径通配符"的部分。


我认为使用classpath环境变量对所有人来说都是错误的,除了最简单的"hello,world"教程。

正确的方法是在编译和运行时为每个项目设置类路径。每个项目都可能是不同的,所以这是完全有意义的。

IDE忽略类路径环境设置;所有JavaEE应用服务器也是如此。这是Java 1的遗迹。我没有在我工作的任何计算机上设置类路径。

学习为命令行编写脚本。或使用蚂蚁。你会很高兴的。


是的,如果您使用第二种方法,它将搜索lib中的所有jar文件。类路径的设置和第一个类路径一样具体,这很奇怪。我想,在一个服务器上,您希望确定加载了哪些jar,这可能是限制它们的一种方法,但是如果有几个jar,可能会遇到问题,需要多长时间。


在Java 1.6 +中,可以将类路径设置为后面的目录,以加载该目录中的所有JAR文件。不过,不仅仅是目录名,它还用于加载该目录和子目录中的类文件。


JAR文件需要在classpath变量中按名称指定。需要注意的一点是,命令行-classpath参数比环境变量更通用,因为它允许您为每个应用程序设置一个类路径。