2010-11-11 81 views
2

我有兩個java文件,Point.java和PointTest.java。在Eclipse中工作正常,但我想它們編譯通過命令行從命令行運行junit與jar文件

我下載了JUnit 4.8.2 jar文件到同一目錄.java文件

我目前正在此命令編譯它們但即時通訊錯誤

javac -cp junit-4.8.2.jar:. Point.java PointTest.java 

我已經嘗試與-cp以及命令。第一個錯誤是

package org.junit does not exist 

我在做什麼錯在這裏?如果我在目錄中提取jar文件,那麼我能夠正確編譯java文件。

萬一有幫助,在測試文件中的前幾個進口報關是

import static org.junit.Assert.*; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.BeforeClass; 
+0

您使用的是Windows嗎?如果是這樣,classpath組件需要用分號而不是冒號分隔。 – jwaddell 2010-11-11 05:27:35

+0

即時通訊在Linux上使用此 – randomThought 2010-11-11 05:28:21

+0

我遇到了同樣的問題!你能解決這個問題嗎? – Ankit 2012-07-25 21:30:04

回答

1

你能驗證是否JUnit的JAR的名稱是正確的。默認名稱是junit-4.8.2.jar而不是junit.4.8.2.jar

+0

名稱正確。我在這個問題上拼寫錯誤。我甚至嘗試將它重命名爲junit.jar以防萬一,它仍然沒有工作。 – randomThought 2010-11-11 08:07:58

0

使用-verbose標誌編譯,以便您可以看到編譯器在做什麼。它會打印出類路徑。

+0

它確實顯示「[源文件的搜索路徑:junit-4.8.2.jar]」。對於類文件,它給了我整個類路徑,其中包括結尾附加的junit-4.8.2.jar。 After class class path,it give me [loading java \ lang \ Object.class(java \ lang:Object.class)] PointTest.java:1:package org.junit不存在 – randomThought 2010-11-11 19:04:20

0

我建議看看javac頁面中的例子,特別是Separating Source Files and Class Files。拆分源代碼,類文件和庫是很常見的。例如,參見Maven Standard Directory LayoutSun Developers Network - Project Conventions。大多數IDE都會鼓勵類似的佈局。

爲什麼不做簡單的事情,並將源文件放在與類文件相同的目錄中?首先,如果您刪除或重命名某個類,但忘記刪除該類文件,則可以使用引用舊類的源代碼。還有其他一些陷阱,我們大多數人都不記得,因爲沒有人將類和源文件放在同一個目錄中。

如果您只是試驗Java和JUnit,我強烈建議使用Eclipse之類的IDE。對於自動構建,您可能需要考慮查看Ant,Maven或Ivy,但對於入門而言,IDE具有較小的學習曲線,並具有許多額外的好處(代碼完成,調試,用於查看JUnit測試失敗的UI) 。