我偶然遇到一个有趣的错误,我需要你帮我弄明白。为什么在扩展TestCase类时无法找到或加载主类
为下面的代码,每一件事情是确定的:
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world");
}
}
则作为后续的代码,一些有趣的事情来了。
import junit.framework.TestCase;
public class HelloWorld extends TestCase{
public static void main(String[] args){
System.out.println("hello world");
}
}
当我运行它,它说
无法找到或加载主类。
我知道当jvm
负载HelloWorld class
它会首先加载TestCase class
。所以我做了下面的代码段。
public class HelloWorld {
public static void main(String[] args) throws ClassNotFoundException{
Class.forName("junit.framework.TestCase");
}
}
异常线程 “main” 抛出java.lang.ClassNotFoundException:junit.framework.TestCase类
我不知道为什么?也许TestCase
类不在我的类路径上?但至于第二代码段我确保TestCase
在我的类路径。
所以我的问题是:
- 为什么我不能加载
TestCase
类? - 为什么在扩展
TestCase
类时找不到或加载主类?
注:我知道打印的HelloWorld功能有什么用TestCase class
其用于JUnit测试但我想弄清楚,把这个惊喜的原因。
你没有告诉我们你是如何运行代码的。它确实看起来像junit不在类路径中......(另外,在格式化问题时学习使用Markdown是一个好主意 - 并且尽量避免使用引用和代码来处理列表和笔记。) –
我在日食中运行它,我会更新我的帖子。 –
那么如何确保JUnit在Eclipse的类路径中?你是否尝试过使用显式类路径从命令提示符运行它? –