java - 使用命令行构建和运行 junit 测试文件的问题

标签 java command-line junit

我有 .java 文件及其 .class 文件,以及 junit 测试文件,以及 junit-4.10.jar 和 hamcrest-core-1.3.jar 位于同一文件夹中。我正在尝试通过执行以下操作来构建它:

javac ErrorTest*.java

我收到很多错误提示

error: package org.junit does not exist

然后,当我尝试使用以下命令使用/usr/share/java 文件夹中的 junit 文件时:

javac -cp /usr/share/java/* ErrorTest*.java

我收到以下错误:

javac: invalid flag: /usr/share/java/ant-antlr-1.9.6.jar Usage: javac use -help for a list of possible options

如何构建并运行这些 ErrorTest.java junit 文件?

编辑:好吧,我明白了,但我不明白为什么。

以下给出了错误:

javac -classpath /path/to/graph/*:/path/to/graph/lib/* ErrorTest*.java

以下命令生成所需的 .class 文件:

javac -classpath .:/path/to/graph/*:/path/to/graph/lib/* ErrorTest*.java

谁能解释一下为什么“.:”有效?非常感谢。

最佳答案

因为,Java CLASSPATH指向“.”表示的当前目录,并且它会在当前目录中查找类。

如果我们在 CLASSPATH 变量中定义了多个目录,Java 将从第一个目录开始查找类,如果在第一个目录中没有找到指定的类,则只查找第二个目录。借助 ":"

在类路径中添加多个目录

你已经设置了类路径

javac -classpath .:/path/to/graph/*:/path/to/graph/lib/* ErrorTest*.java

因此使用此命令您可以在类路径中设置多个目录。

JVM 按照 CLASSPATH 变量中列出的顺序搜索目录。

在您的情况下,当前目录中似乎存在一些类,因此如果您未在类路径中提供当前目录,JVM 将在第二个路径中搜索,然后在第三个路径中搜索,但所需的类不存在,因此似乎它不起作用

关于java - 使用命令行构建和运行 junit 测试文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39783809/

相关文章:

java - @Inject 属性在 JSF 页面上显示为 "unknown property"

java - 如何向我的所有应用引擎实例发送请求

java - 如何使用方法从数组中返回随机字符串?

windows - 从 IIS 上的命令行列出所有托管网站

java - 配置失败导致 TestNG 中的测试跳过且 XML 中没有信息

其他线程不可见的java实例变量

linux - 为什么 du 给出不同的结果?

windows - Lua os.execute 空终端

java - 除了在 mockito 中手动设置值之外,还有其他方法可以模拟 pojo 吗?

java - 如何记录 JUnit 测试方法的每个语句