我有一个junit测试套件,我已经从eclipse成功运行了。当我尝试用
运行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
我知道jar已经成功创建,因为我正在创建日志(以编程方式从AppTest开始)并且回显$ PATH打印出junit.jar所在的目录。
我如何确保当我在日食中受到刺激时,我会拿起所有的junit罐子?
答案 0 :(得分:1)
您需要将junit jar添加到 classpath ,而不是系统的路径。
执行此操作的一种方法是将类路径设置为指向junit.jar和AppTest.jar并调用main。
java -cp /path/to/junit.jar:/path/to/AppTest.jar com.example.Main
答案 1 :(得分:1)
路径可能会打印罐子,但是类路径中的罐子。还有一个名为CLASSPATH
的环境变量,您需要在其中附加junit jar并尝试运行AppTest.jar
答案 2 :(得分:1)
在主Jar的清单中添加对另一个Jar的引用。
答案 3 :(得分:1)
信不信由你,它就像确保我在向导中导出为“可运行的Jar”并使用“Extract required libraries ...”选项一样简单。我一直试图把它作为一个普通的罐子出口。