簡體   English   中英

cmdline中的Junit-java.lang.ClassNotFoundException

[英]Junit from cmdline - java.lang.ClassNotFoundException

我有一個從eclipse成功運行的junit測試套件。 當我嘗試使用

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罐子?

您需要將junit jar添加到classpath ,而不是系統的路徑。

一種方法是將類路徑設置為指向junit.jar和AppTest.jar並調用您的main。

java -cp /path/to/junit.jar:/path/to/AppTest.jar com.example.Main

路徑可能會打印出罐子,但是罐子在類路徑中。 還有一個名為CLASSPATH環境變量,您需要在其中添加附加的junit jar並嘗試運行AppTest.jar

如何設置類路徑

在主Jar的清單中添加對另一個Jar的引用。

信不信由你,這就像確保我在向導中導出為“可運行的Jar”並使用“提取所需的庫...”選項一樣簡單。 我一直試圖將其導出為普通的jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM