2010-11-11 83 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) 。