Java 类加载问题JUnit4.11

Java 类加载问题JUnit4.11,java,junit,Java,Junit,我正在尝试JUnit4.11。我在junitfootest.java上编写了这个示例 public class FooTest{ @Test public void thisAlwaysPass(){ } } 我在/usr/lib/jvm/java/jre/lib/ext 现在,当我运行下面的命令时,它表示找不到该类 $ java -cp . org.junit.runner.JUnitCore FooTest JUnit version 4.11 could not fin

我正在尝试JUnit4.11。我在junitfootest.java上编写了这个示例

public class FooTest{

  @Test
  public void thisAlwaysPass(){
  }

}
我在
/usr/lib/jvm/java/jre/lib/ext

现在,当我运行下面的命令时,它表示找不到该类

$ java -cp . org.junit.runner.JUnitCore FooTest
JUnit version 4.11

could not find class : FooTest

Time : 0.002

OK (0 Tests)
我认为类路径有一些问题。所以我尝试不使用JUnit,它说缺少main:

$ java -cp . FooTest
Error: main method not found in FooTest
因此Java能够加载该类。但是当我尝试使用JUnit运行时,它找不到类。我对java类加载有基本的了解。我是不是错过了JUnit的一些东西


我使用的是Fedora17和OpenJDK1.7,我猜是这样的。FooTest不在类路径中。 试试这个

java -cp pathtojunit\junit-4.11.jar;pathtohamcrest\hamcrest.jar;pathto\FooTest.class; 
orj.junit.runner.JUnitCore FooTest
或者,您可以将所有JAR和测试类放在一个文件夹中,比如说c:\junittest\并尝试以下操作

javac -cp c:\junittest\*; FooTest.java
java -cp c:\junittest\*; org.junit.runner.JUnitCore FooTest

只是猜测一下,但是您不应该提供FooTest的完全限定类名吗?但是我没有把它放在包中。这是强制性的吗?删除junit无助于。。因为你需要main()@rozar是的,我知道我只是想知道java是否可以加载这个类。实际上,如果您使用maven或gradle,这会容易得多,因为它们已经为您解决了所有的类路径问题。当前文件夹中没有可用的its。我正在将“.”传递给-cpSo您将所有junit、FooTest和hamcrest放在一个文件夹中,并且您正在从该文件夹运行命令?因为cp所做的是用上面的命令和步骤覆盖javaclass路径,所以我能够在我的计算机中为FooTest类运行单元测试。