JDK安裝完后如果沒有設置環境變量CLASSPATH,則系統默認的類路徑包括java系統類路徑和當前目錄。比如你的當前工作目錄是E:\,在此目錄下有class1.class,你可以直接使用"java class1"運行這個類。但是如果切換到別的目錄,再使用"java class1"會出現NoClassDefFoundError,此時需要指定運行參數classpath。使用"java -classpath E:\ class1"運行class1.class。
如果class1引用了其他的類,那么被引用的類也需要在E:\目錄下,否則應該在classpath參數中指定被應用類所在的目錄,比如class1引用了class2.class,class2.class位於F:\目錄下,使用
"java -classpath E:\;F:\ class1"來運行class1。如果被引用的是一個jar文件,那么在classpath中需要指明具體的jar文件,而不能只包括jar文件所在的目錄。比如,class1引用了jar1.jar,這個jar文件位於C:\目錄下,則使用"java -classpath E:\;C:\jar1.jar class1"來運行class1。
在非class1.class所在的目錄下運行class時,classpath參數需要指明class1以及class1所引用的類的路徑,如果在class1.class所在目錄運行該類,同樣需要在classpath中包括當前目錄,因為使用-classpath時不再會默認當前目錄為類路徑。比如在E:\下要使用"java -classpath .;F:\ class1"來運行class1。
"java -classpath e:\ class1"不能寫成"java class1 -classpath e:\"。
使用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:\。