因此,我編寫了一個名爲Item
的類,並使用Junit編寫了一個名爲ItemTest
的測試,我想從命令行執行我的測試。這是我遵循的步驟:從命令行運行Junit測試
設置路徑,運行的java.exe和classpath設置爲庫
...> set path="C:\Program Files (x86)\Java\jdk1.7.0_40\bin" ...> set classpath=C:\Program Files (x86)\Java\hamcrest-core-1.3.jar; C:\Program Files (x86)\Java\junit-4.11.jar
然後我只需運行org.junit.runner.JUnitCore看如果加入庫均類路徑
...>java org.junit.runner.JUnitCore
輸出是
JUnit version 4.11 Time: 0,001 OK (0 tests)
然後我編譯沒有錯誤
Item
和ItemTest
C:\Users\User\IdeaProjects\My_project\src>javac .\main\java\Item.java .\test\java\ItemTest.java
然後嘗試RO來看,這種類
C:\Users\User\IdeaProjects\My_project\src>java org.junit.runner.JUnitCore main.java.Item test.java.ItemTest
在我得到這個
JUnit version 4.11 Exception in thread "main" java.lang.NoClassDefFoundError: main/java/Item (wrong name: Item) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 2) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.junit.runner.JUnitCore.runMain(JUnitCore.java:86) at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:47) at org.junit.runner.JUnitCore.main(JUnitCore.java:40)
到底如何解決這個問題 ?我應該把
Item
放在classpath中嗎?
UPD#1
把我的類路徑此路徑不(有和沒有src
)工作:
C:\Users\User\IdeaProjects\My_project\src>
UPD#2
噹噹他在文件系統中存儲或者他放置什麼軟件包時,我想要爲他運行我的課程。因爲我沒有軟件包,所以My_project
除了項目名稱是模塊名稱。
解決
這是這樣的 - 我添加到下一個路徑CLASSPATH中
的路徑
Item
類:C:\Users\User\IdeaProjects\My_project\src\main\java\;
測試
ItemTest
類路徑:C:\Users\User\IdeaProjects\My_project\src\test\java\;
然後只需運行:
...>java org.junit.runner.JUnitCore ItemTest
我有一個問題,如果在「項目結構」對話框我有「My_project」作爲項目名稱,也作爲模塊名稱?你能幫我理解「項目編譯器輸出」路徑與我的問題有什麼關係嗎? – marknorkin
聽起來像Maven。不,你沒有問題。您可以擁有任何文件夾名稱和任何模塊名稱,只要您正確引用它們即可。 –