2

私はEclipseから正常に実行しているjunitテストスイートを持っています。jarを実行しようとすると

java -jar AppTest.jar

私は以下を取得します:

Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
at appdirect.AppTest.main(AppTest.java:18)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
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)
... 1 more

ログを(プログラムで AppTest から)作成しているため、jar が正常に作成されたことがわかります。 $PATH をエコーすると、junit.jar があるディレクトリが出力されます。

Eclipse で耳障りなときに、すべての junit jar を取得していることを確認するにはどうすればよいですか?

4

4 に答える 4

1

システムのパスではなく、クラスパスにjunit jarを追加する必要があります。

これを行う 1 つの方法は、junit.jar と AppTest.jar を指すようにクラスパスを設定し、メインを呼び出すことです。

java -cp /path/to/junit.jar:/path/to/AppTest.jar com.example.Main
于 2012-05-16T22:17:04.620 に答える
1

パスはjarのものを出力するかもしれませんが、クラスパスにあるjarです。junit jar を追加して実行する必要がある環境変数がもう 1 つ呼び出さCLASSPATHれます。AppTest.jar

クラスパスの設定方法

于 2012-05-16T22:22:35.887 に答える
1

信じられないかもしれませんが、ウィザードで「実行可能な Jar」としてエクスポートし、「必要なライブラリを抽出...」オプションを使用したことを確認するのと同じくらい簡単でした。私はそれを通常の瓶としてエクスポートしようとしていました。

于 2012-05-17T17:57:00.817 に答える
1

メインの Jar のマニフェストに他の Jar への参照を追加します。

于 2012-05-16T22:35:53.580 に答える