我有以下代碼。它適用於加載我指出的TestSuiteSample類。 TestSuiteSample只是一個帶註釋的標準JUnit4測試套件。作爲正常的java項目運行,這將打印「true」,但在eclipse rcp下運行,這將打印「false」。任何想法爲什麼?無法檢查日食rcp類加載器中的註釋
File testSuiteDir = new File("D:/TestDir/");
URL classUrl;
classUrl = testSuiteDir.toURI().toURL();
URL[] classUrls = { classUrl };
URLClassLoader ucl = new URLClassLoader(classUrls);
Class<?> cls = ucl.loadClass("TestSuiteSample");
if (cls.isAnnotationPresent(SuiteClasses.class)) {
System.out.println("true");
} else {
System.out.println("false");
}
我想這一個在CLS檢查註釋,但仍返回0註釋。
Annotation[] annotations = new TestClass(clazz).getAnnotations();
for (Annotation annotation : annotations) {
System.out.println(annotation.annotationType().getName());
}
我在創建新的URLClassLoader時添加了這一個 this.getClass()。getClassLoader()。我不太確定Thread.getCurrentThread()。getContextClassLoader是否與此一樣。 – jantox 2012-07-18 07:28:37