【问题标题】:Error when attempting to run JUnit test runner [duplicate]尝试运行 JUnit 测试运行程序时出错 [重复]
【发布时间】:2017-04-03 20:13:07
【问题描述】:

我是第一次尝试使用 JUnit,但在运行已编译的测试运行程序时似乎遇到了一些问题。我正在从命令行使用 java 并运行 macOS。

我使用以下命令成功编译了我的两个 jar 文件和 4 个 java 源文件:

javac -classpath junit-4.12.jar:jar2.jar StackLinkedTestRunner.java 2.java 3.java 4.java

但是,当我执行java StackLinkedTestRunner 时,我收到以下错误:

线程“主”java.lang.NoClassDefFoundError 中的异常: org/junit/runner/JUnitCore 在 StackLinkedTestRunner.main(StackLinkedTestRunner.java:9) 原因: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 更多

我用谷歌搜索了错误,但我真的不明白任何返回的问题或解决方案。如果人们能花时间解释我做错了什么以及如何解决它,我将不胜感激。

【问题讨论】:

  • 这是超级基本的东西。不要将自己与 JUnit 混淆……当您不了解如何使 javac 和 java 在类路径方面很好地协同工作时。本质上:当您的 .java 源代码依赖于其他 JAR 以允许编译时,那么在使用 Java 运行您的类时,您的类路径中也需要这些 JAR。如前所述:超级基本的东西;记录了无数次。

标签: java command-line junit


【解决方案1】:

您正在为 java 编译器设置类路径,但您也必须为 java 执行设置类路径。

【讨论】:

  • 感谢您的回复。我会执行java -classpath junit-4.12.jar:jar2.jar StackLinkedTestRunner.java 2.java 3.java 4.java 吗?
  • 我没有真正从命令行运行它的经验,但我相信它会是java -classpath junit-4.12.jar:jar2.jar StackLinkedTestRunner
  • 不幸的是,我收到错误“错误:无法找到或加载主类 StackLinkedTestRunner”。
猜你喜欢
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
相关资源
最近更新 更多