Java 我的JUnit类路径有什么问题?

Java 我的JUnit类路径有什么问题?,java,junit,classpath,Java,Junit,Classpath,我忍不住要在这里问。。。我使用的是Windows 8.1,我总是需要将JUnit.jar文件复制到我的活动项目中,因为无论我尝试什么,它都不起作用。目前,我的类路径设置为: C:\ProgramFiles\junit\junit.jar;C:\ProgramFiles\junit\junit-4.4.jar;C:\ProgramFiles\junit\junit-4.11.jar JUNIT\u HOME设置为C:\Program Files\JUNIT 每当我尝试运行测试时,例如:javaju

我忍不住要在这里问。。。我使用的是Windows 8.1,我总是需要将JUnit.jar文件复制到我的活动项目中,因为无论我尝试什么,它都不起作用。目前,我的类路径设置为:

C:\ProgramFiles\junit\junit.jar;C:\ProgramFiles\junit\junit-4.4.jar;C:\ProgramFiles\junit\junit-4.11.jar

JUNIT\u HOME设置为
C:\Program Files\JUNIT

每当我尝试运行测试时,例如:
javajunit-4.4.jar org.junit.runner.JUnitCore MyMatrixTest

我得到以下错误消息:找不到主类junit-4.4.jar。我还尝试在我的类路径中只使用一个版本的junit(即使包括所有版本也不错,因为我经常需要从不同的版本运行测试),但没有做任何更改。。我只是不知道该怎么做才能使它起作用

谢谢你的帮助

您所要做的就是:

java -cp "C:\Program Files\junit\junit-4.4.jar";. org.junit.runner.JUnitCore MyMatrixTest

如果正确设置了
CLASSPATH
环境变量,则需要执行

java org.junit.runner.JUnitCore
没有对
.jar
文件的引用

具有以下用法

java [ options ] class [ arguments ]

如果不打算指定任何选项,那么第一个参数必须是类名。在本例中,即
org.junit.runner.JUnitCore

您需要指定
-cp
选项。但这不会覆盖windows中设置的类路径变量吗?然后我得到一个错误:找不到主类org.junit.runner.JUnitCore,所以我在这里说的是在Windows中作为系统变量设置的类路径。。。这通常应该在不使用-cp的情况下作为默认值,或者我在这里错了吗?我知道这一点(或者说我甚至可以将junit.jar复制到我的文件夹中),但我的类路径仍然不能正常工作。。因为如果它工作正常,我根本不应该命名目录,是吗?但是是的,这是有效的。。没有办法把它缩短吗?如果可以的话,你这样做的目的是什么?因为通常情况下,路径是这样指定的,或者使用
java-cp/path/to/all/jars/*your.java.Application
我有很多不同的小型任务要完成。其中每一个都包括我想要运行的JUnit测试。我只是想寻找一种方法来轻松地运行它们,而不必总是将我的jar复制到目录中,也不必总是键入那么长的路径。这就是为什么我还设置了path变量,只是为了不总是键入JDK的路径。。我想这只是懒惰的问题吧!无论如何谢谢你的帮助!啊,谢谢,这正是我想要的!现在你说的很明显,我不必给包命名,因为它已经在我的类路径中了!现在这个工作很好!再次感谢!还有一个问题:既然所有v4版本都具有相同的“体系结构”,应用程序启动器如何知道我要启动哪个版本的junit。我更惊讶的是,我的示例是用JUnit3.8运行的,而在v3.8O的包中不存在org.JUnit.runner.JUnitCore类。O@user
java
启动器不知道库版本。它只知道
.class
文件。添加类路径条目时,java可以访问该条目中包含的类。如果您有多个同名的类,那么您可能有一个jar地狱(请查看)。至于junit版本,V4JAR是否在您的工作目录中?工作目录ia自动添加到类路径。现在,我的类路径中有三个不同的JUnit版本:JUnit.jar(v3.8)、JUnit-4.4.jar和JUnit-4.11.jar。junit版本3.8的架构与junit 4版本不同,因此不应该有任何复杂之处。当时TestRunner被划分为不同的类,而JUnitCore类不存在。令我惊讶的是,这些测试是使用JUnit3.8运行的,使用的是以下代码:java org.JUnit.runner.JUnitCore MyTestClass。但我现在仔细检查了一下,档案里没有这样的课。。。但也许我应该重新考虑在类路径中包含所有版本