Java 修改junit.framwork中的TestCase.class会给出;类型的层次结构';类名';是不一致的;子类中的错误

Java 修改junit.framwork中的TestCase.class会给出;类型的层次结构';类名';是不一致的;子类中的错误,java,junit,Java,Junit,我在junit.jar(4.11)中的junit.framework包中的TestCase.class文件中添加了一个新变量。添加变量并用修改后的TestCase.class文件替换旧的TestCase.class文件后,在扩展TestCase类的类声明中出现错误“类型'classname'的层次结构不一致”。下面是代码 public class Junit_Test extends TestCase { @BeforeClass public static void init

我在junit.jar(4.11)中的junit.framework包中的TestCase.class文件中添加了一个新变量。添加变量并用修改后的TestCase.class文件替换旧的TestCase.class文件后,在扩展TestCase类的类声明中出现错误“类型'classname'的层次结构不一致”。下面是代码

public class Junit_Test extends TestCase {

    @BeforeClass
    public static void init(){
        System.out.println("Executing beforeclass annotation");
    }

}
TestCase.class修改:

public abstract class TestCase extends Assert implements Test {
    /**
     * the name of the test case
     */
    private String fName;
    private String fDesc;      //added this variable

当jre jar文件不在构建路径中时,就会发生这种错误。将jar文件添加到构建路径并尝试再次运行。

感谢@ricky2527的建议,但是我的构建路径(properties->java build path->library)已经包含junit 4.11 jar和jre jar以及用户条目下的运行配置中的junit jar。让我简单地解释一下我在这里要做什么。我有一个包含junit测试的类,这个类exetndsTestCase类。当我使用batchrunner运行它时,它会运行罚款。然后,我在TestCase.class中创建一个新变量,并在现有junit jar中替换它。当junit测试类中出现“TheHierarchy..”错误时,我认为这个错误是因为您在super类中做了更改。看看这个类似的问题,希望它能帮助你。我发现了…这么大的痛苦…让我解释一下发生了什么。我在TestCase.java中所做的更改不是TestCase.class的实际源代码。附加到TestCase.class的源代码与TestCase.class中的实际代码不同。因此,当我对TestCase.java进行更改,编译它并替换TestCase.class时,新的TestCase.class不合适,我得到了错误“…不一致”。我找到了TestCase.class的实际代码(通过在Junit测试用例中的TestCase类名上按F3),然后我对实际代码进行了更改,编译并替换它..然后错误消失了。谢谢你的帮助@ricky2527