【问题标题】:running junit from command line with jar file使用 jar 文件从命令行运行 junit
【发布时间】:2011-05-08 06:48:43
【问题描述】:

我有两个 java 文件,Point.java 和 PointTest.java。在 Eclipse 中工作正常,但我正在尝试通过命令行编译它们

我将 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;

【问题讨论】:

  • 您使用的是 Windows 吗?如果是这样,类路径组件需要用分号而不是冒号分隔。
  • 我遇到了同样的问题!你能解决这个问题吗?

标签: java command-line junit


【解决方案1】:

我建议查看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……) .

【讨论】:

    【解决方案2】:

    使用-verbose 标志编译,这样您就可以看到编译器在做什么。它将打印出类路径。

    【讨论】:

    • 它确实显示了“[源文件的搜索路径:junit-4.8.2.jar]”。对于类文件,它为我提供了整个类路径,其中包括附加到末尾的 junit-4.8.2.jar。在类路径之后,它给我 [正在加载 java\lang\Object.class(java\lang:Object.class)] PointTest.java:1: package org.junit does not exist
    【解决方案3】:

    您能否验证 junit jar 的名称是否正确。默认名称是 junit-4.8.2.jar 而不是 junit.4.8.2.jar

    【讨论】:

    • 名称正确。我在问题上拼错了。我什至尝试将其重命名为 junit.jar 以防万一,但它仍然不起作用。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 2015-11-25
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2011-06-04
    相关资源
    最近更新 更多