1

ソースから JAR ファイルを作成しようとしていますが、実行すると class not found 例外が発生します。MANIFEST.MF ファイルで定義したにもかかわらず、メイン クラスが見つかりません。エラーがあれば教えてください。

私の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

main/java/WatcherObject.java には main メソッドが含まれています。

私の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.

手伝ってくれてありがとう!

4

1 に答える 1

2

問題は、コンパイルされたクラスファイルではなく、Java ソース ファイルをインクルードしている可能性が最も高いです。クラスをロードすると、JVM はデフォルトで、指定された名前のクラスファイルを探してロードしようとします。クラスファイルがないため、クラスをロードできません。

于 2013-05-02T12:44:21.637 に答える