java - 将 CLASSPATH 更改为 JUNIT_HOME/junit-4.12.jar,java 命令停止工作

标签 java junit-rule

当我将系统变量中的 CLASSPATH 变量更改为 JUNIT_HOME/junit-4.12.jar 时,我的 Java 命令停止工作。

例如,当我想要执行一个类文件时,我收到错误“无法找到或加载主类”,尽管javac工作正常。 p>

当我删除CLASSPATH时,java命令再次开始工作。

最佳答案

CLASSPATH 变量是告诉应用程序(包括 JDK 工具)在哪里查找用户类的一种方法。当您执行java命令来启动Java应用程序时,它会启动Java运行时环境,加载指定的类,并调用该类的main方法。

如果您的 CLASSPATH 变量设置为 JUNIT_HOME/junit-4.12.jar,则仅包含 JUNIT_HOME/junit-4.12.jar 中的类将被加载。因此,您将收到无法找到或加载主类错误。

指定类路径的首选方法是使用-cp命令行开关。这允许为每个应用程序单独设置CLASSPATH,而不会影响其他应用程序。

类路径的默认值为".",表示只搜索当前目录。如果您还想在其他目录中找到类文件,例如 c:\otherDirectory 中的类,您可以将类路径设置为以下内容:

java -classpath ".;c:\otherDirectory"

关于java - 将 CLASSPATH 更改为 JUNIT_HOME/junit-4.12.jar,java 命令停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075847/

相关文章:

java - 为什么消费者中的wait()无法从生产者notifyall()获得通知?

java - 此类文件的 JAR 属于容器 'Junit 4',该容器不允许修改其条目上的源附件

java - 我如何修复数组循环中的这个循环,Java Eclipse?

java - 在 hibernate 中获取唯一结果的计数时出错

java - 使用 @DiscriminatorValue 的多个对象的单个存储库

Java Servlet 和 HttpSession

java - 在 JUnit 中的每个 '@Rule' 之后和每个 '@Test' 之前应用 '@After'

java - 仅在 Windows 上运行单元测试

junit - 是否可以使用 PowerMockRule 而不是 PowerMockRunner 在最终类上模拟静态方法?