加载外部JAR

时间:2014-10-02 14:22:38

标签: java eclipse

我正在创建一个需要查找具有带@Program注释的类的JAR的启动器。但是每当我加载JAR类时,它就永远无法从任何JAR中的任何类中找到注释。

如果我在启动器JAR中有类,它们会出现。但是当他们来自外部JAR时,他们不会表现出来。 getAnnotations()没有显示任何内容。即使getClassesAnnotatedWith(Program.class)也没有。

我错过了什么?

注释在它自己的类旁边(同一个包)是程序的主要类。

@Retention(RetentionPolicy.RUNTIME)
@Type (ElementType.TYPE)
public @interface Program {
}

1 个答案:

答案 0 :(得分:0)

为了正确处理注释,它们的类文件必须位于正在运行的程序的类路径中。如果JVM加载的类具有在类路径中找不到的注释,则会以静默方式删除这些注释(除了找不到的类)。在这种情况下,您也不会再通过反射访问找到它们了。

因此,请确保注释'类文件位于类路径中。

相关问题