JDK安装完后如果没有设置环境变量CLASSPATH,则系统默认的类路径包括java系统类路径和当前目录。
1. 比如你的当前工作目录是 E:\,在此目录下有class1.class,你可以直接使用
java
class1 来运行这个类。
2. 但是如果切换到别的目录,再使用"java class1"会出现NoClassDefFoundError,
此时需要指定运行参数classpath。使用
java -classpath E:\
class1 来运行class1.class。
3.
如果class1引用了其他的类,那么被引用的类也需要在E:\目录下,否则应该在classpath参数中指定被应用类所在的目录,
比如class1引用了class2.class,class2.class位于F:\目录下,使用
java -classpath E:\;F:\
class1 来运行class1。
4.
如果被引用的是一个jar文件,那么在classpath中需要指明具体的jar文件,而不能只包括jar文件所在的目录。比如,class1引用了jar1.jar,
这个jar文件位于C:\目录下,则使用
java -classpath
E:\;C:\jar1.jar
class1 来运行class1。
5.
在非class1.class所在的目录下运行class时,classpath参数需要指明class1以及class1所引用的类的路径,如果在class1.class所在目录运行该类,
同样需要在classpath中包括当前目录,***
因为使用-classpath时不再会默认当前目录为类路径 *** 。比如在E:\下要使用
java -classpath .;F:\
class1 来运行class1(使用classpath参数时,必需要加上当前目录. 否则会找不到当前目录下的class文件。
注意: java -classpath e:\ class1
不能写成
java class1 -classpath e:\
6.
使用javac编译java文件时,可以使用-classpath指定class1.class所引用的类文件所在的目录。
在D:\目录下编译class1.java使用:
javac E:\class1.java
-classpath F:\
如果引用的是jar文件,同样需要指明jar文件:
javac E:\class1.java
-classpath C:\jar1.jar
javac -classpath F:\ E:\class1.java可以写成javac E:\class1.java
-classpath F:\。