CLASSPATH
classpath是个变量,可以在command-line 或者 environment-variable 中设置,用来告诉 JVM 或者 java compiler 去哪里寻找 user-definded class 或者 package 。
jvm寻找和加载类的顺序是:
1,bootstrap classes。 Java Platform 所必需的类。
2,extension classes。在JRE或者JDK extension 目录下的类。比如 jre/lib/ext.
3,user-defined package and libraries。
前2种类,不需要指定,user-defined 需要通过classpath指定。
假设现在有类 HelloWorld 在包 org.mypackage 下,而 org.mypackage 在目录 D:\myprogram 下。
通过commond-line指定classpath
java -classpath D:\myprogram org.mypackage.HelloWorld
通过environment指定classpath
set CLASSPATH=D:\myprogram
java org.mypackage.HelloWorld
通过-classpath会覆盖CLASSPATH。
当有Jar 包时
java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar org.mypackage.HelloWorld
set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jar
java org.mypackage.HelloWorld
see more detail here