0
我試圖從源代碼創建一個JAR文件,但是當我運行它時,我得到的類沒有找到異常 - 它找不到主類,即使我將其定義爲MANIFEST.MF文件。你能發現任何錯誤嗎?ClassNotFoundException在已創建的JAR中顯示清單的問題
我的JAR結構:
META-INF/
META-INF/MANIFEST.MF
main/
main/java/
main/java/ThreadWatcher.java
main/java/WatcherObject.java
main/resources/
main/resources/WatcherObjectType.java
main/resources/TLogger.java
main/resources/DataProvider.java
main/resources/WatcherObjectStatus.java
main/resources/SettingsProvider.java
主/ JAVA/WatcherObject.java包含的主要方法。
我的MANIFEST.MF:
Manifest-Version: 1.0
Created-By: 1.6.0_27 (Sun Microsystems Inc.)
Main-Class: main.java.ThreadWatcher
當我運行它,我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: main/java/ThreadWatcher
Caused by: java.lang.ClassNotFoundException: main.java.ThreadWatcher
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: main.java.ThreadWatcher. Program will exit.
感謝您的幫助!
如果WatcherObject包含主方法,爲什麼將ThreadWatcher設置爲主類? – Antimony 2013-05-02 12:45:06
你應該在你的JAR中編譯'.class'文件,而不僅僅是源代碼。 – 2013-05-02 12:51:54