好的我知道這個問題以前已經被許多次提過很多次了,但是我已經使用了它並查看了一些例子,並在過去一個月裏看到了關於SO的問題,無法讓這個工作。我認爲問題在於我希望能夠從Eclipse和命令行運行該程序。我也使用OSX,我認爲我正在閱讀的很多例子都是針對Windows/Linux的。從命令行運行時將jar添加到類路徑
如果我在Eclipse編譯一個簡單的程序,我想在命令行中運行我這樣做:
java -cp bin MyProgram
我還有一個程序我編譯並在Eclipse中運行,this引用的MySQL JDBC連接器(mysql-connector-java-5.1.19-bin.jar),它存儲在同一個目錄中。這從Eclipse正常工作,但我不能從命令行運行它。
我試過的東西全部組合...
java -classpath "bin;mysql-connector-java-5.1.19-bin.jar" MyProgram
java -cp bin\;mysql-connector-java-5.1.19-bin.jar MyProgram
,並得到各種類未找到錯誤的...
Exception in thread "main" java.lang.NoClassDefFoundError: MyProgram
Caused by: java.lang.ClassNotFoundException: MyProgram
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
嗨馬特,如果我沒有記錯的話,我認爲在classpath是路徑申報要執行的主類。所以在這種情況下,如果你的班級在bin文件夾中,我只會嘗試:java MyProgram或java -cp myprogrampath MyProgram –
@FedericoGiust不是特別的; classpath只是定義了一個檔案或一組類的路徑。類路徑可能包含或不包含可運行類(通常會導致異常或java.exe錯誤)。類路徑可以包含沒有可運行類的目錄和存檔。 – Qix
[Java命令行與外部.jar]的可能重複(http://stackoverflow.com/questions/6069702/java-command-line-with-external-jar) –