Java 为什么用引导类加载器(bootclasspath)加载的类不';不包括注释

Java 为什么用引导类加载器(bootclasspath)加载的类不';不包括注释,java,eclipse,junit,bootclasspath,Java,Eclipse,Junit,Bootclasspath,我当时正在为我的javaagent编写单元测试,但面对JVM的行为,我想我以前并没有意识到这一点,我想知道是否有关于它的解释或文章。我试着用谷歌搜索,但没有成功 我发现包含在引导类路径中的类没有注释。为了演示它,我创建了一个简单的JUnit测试 import org.junit.Test; public class SimpleTest { @Test public void myTest() { } } 它当然可以完美地运行:)但是如果我像这样配置eclipse项目

我当时正在为我的javaagent编写单元测试,但面对JVM的行为,我想我以前并没有意识到这一点,我想知道是否有关于它的解释或文章。我试着用谷歌搜索,但没有成功

我发现包含在引导类路径中的类没有注释。为了演示它,我创建了一个简单的JUnit测试

import org.junit.Test;

public class SimpleTest {
    @Test
    public void myTest() {
    }
}
它当然可以完美地运行:)但是如果我像这样配置eclipse项目:


然后它失败了,java.lang.Exception:没有可运行的方法。我在调试器中看到,检查注释的代码找不到注释。

我找到了我的问题的答案,它完美地解释了发生了什么(我在那里投票)


JUnit库是由Eclipse添加的,每当引导加载的类无法引用它们时,它就会转到常规类路径。

检查java类的构建路径一次。如果有任何不需要的jar,请删除它们并尝试运行。Eclipse可能会在类路径上添加JUnit jar。我认为,由于junit jar不在引导类路径上,所以在引导类加载期间,java可能会忽略注释,因为缺少依赖项。是否有人可以在某篇文章或文档中提供参考来确认?