2017-04-12 115 views
0

我在Windows 7 運行Java 1.8.0_65我創建了一個JAR,並用下面的命令運行Java的罐子[...]失敗而得到這個錯誤:命令:用錯誤消息

Error: Could not find or load main class printxml.PrintXml

這裏是我的命令來創建JAR:

jar cmfev manifest.txt printxml.jar printxml.PrintXml @filelist.txt

內容文件的 「manifest.txt」:

Class-Path: C:\Users\Me\SQLSER~1\JDBC\jtds-1.3.1.jar

我檢查printxml.PrintXml類是否通過此命令是在JAR:

jar tvf printxml.jar printxml/PrintXml.class

命令成功,即PrintXml類在JAR中。 我然後檢查是否在JAR的PrintXml類有通過此命令「主」的方法:

javap -classpath printxml.jar -public printxml.PrintXml

命令成功,包括它的輸出...

public static void main(java.lang.String[]);

搜索互聯網,我發現只有明顯的答案,如:

  • 您的類路徑是錯誤的。
  • 你的班級沒有「主要」方法。

有人能告訴我如何解決這個問題嗎?

謝謝, Avi。

+0

你可以分享PrintXml的代碼和你完整的manifest.txt嗎? – 2017-04-12 05:01:47

+0

你忘了在MANIFEST.MF中包含主類在這裏尋找例如https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html –

+0

不推薦在jar文件中使用絕對'Class-Path',你可以使用'eclipse - > export - > jar file'將所有文件打包成一個可執行文件'jar' –

回答

0

正如荷馬辛普森所說:D'OH
文件「manifest.txt」中的Class-Path條目的值是錯誤的!
它需要是一個URL!
所以我把它改爲:

file:/C:/Users/Me/SQLSER~1/JDBC/jtds-1.3.1.jar

變戲法似的!沒有更多的錯誤信息。現在它運行! 感謝所有幫助。 ;-)

+0

我會說RTFM在這裏適合! :-) – Abra