2

私は Java が初めてで、アプリケーションを .jar ファイルにエクスポートする方法を学んでいます。Eclipse のチュートリアルと Java for Total Beginners に基づいたいくつかのクラスを使用して、Eclipse で単純な Java アプリケーションを作成しました。

Run -> Run in Eclipse でアプリケーションを実行すると、アプリケーションは例外なく実行されます。ただし、ファイル -> エクスポートして、アプリケーションを .jar ファイルにエクスポートしてから実行すると、

java myLibrary.jar

私の Mac 端末では、標準エラーからこの出力を取得します。

Exception in thread "main" java.lang.NoClassDefFoundError: myLibrary/jar

Caused by: java.lang.ClassNotFoundException: myLibrary.jar
    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)

これは何を意味するのでしょうか?どのようにクラスを欠席していますか? エクスポートする項目にチェックを入れたり外したりしてみました。たとえば、JUnit テストを含めようとしましたが、役に立ちませんでした。

4

3 に答える 3

1

java引数なしで実行すると、次のように出力されます。

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

を使用してファイル-jarを実行しjarます。

また、実行するクラスを指定する必要があります。マニフェストでこれを行うことができます(Main-Classヘッダーを使用します)。詳細については、http://docs.oracle.com/javase/tutorial/deployment/jar/run.htmlを参照してください。

于 2012-05-14T17:40:23.210 に答える
1

ターミナルで、すべてのクラス ファイルを含むディレクトリに移動します。

jar cmf MANIFEST.MF myLibrary.jar *

次に、jar が正常に作成された場合は、次の方法で実行できます。

java -jar myLibrary.jar

MANIFEST.MF ファイルには、少なくとも次のものが含まれている必要があります。

Main-Class: myLibrary

myLibrary は、メイン関数を含むクラスです。

于 2012-05-14T17:48:32.523 に答える
0

Eclipse では、プロジェクトを右クリック -> エクスポートをクリック -> Java -> Jar ファイル -> ソース フォルダーを選択します (ほとんどの場合、デフォルトで問題ありません)。jar ファイルの場所を指定します。ウィザードの最後のページに移動し、「アプリケーション エントリ ポイントのクラスを選択してください:」で、main を持つ Java クラス ファイルを選択します。

于 2012-05-15T11:46:24.417 に答える