2012-07-18 82 views
2

我有一個eclipse rcp應用程序。此應用程序將嘗試從應用程序之外的目錄加載類文件。但是,我總是得到一個ClassNotFoundException的錯誤。你有什麼想法如何類加載在eclipse rcp中工作?類加載eclipse rcp

基本用例是

  1. 讀取XML文件 - 做
  2. 將在導航的XML數據 - 做
  3. 當用戶在導航點擊數據,找到一個目錄中的類嘗試加載它 - classnotfoundexception

我創建了一個測試java項目,我添加了外部類庫,它可以找到這些成功。但是,如果我在eclipse rcp中整合它,它會拋出該錯誤。

回答

4

Eclipse RCP應用程序使用OSGi類加載支持來查找與您的應用程序中的OSGi包(插件)相關聯的類加載器。如果你想從某個地方加載一個類,那麼你需要創建一個ClassLoader,它可以從一個目錄加載一個類(也許使用URLClassLoader)。所以你需要創建其中的一個,並使用它從所需的位置加載類。

+0

謝謝。我正在使用舊的ClassLoader,應該使用URLClassLoader。 – jantox 2012-07-18 06:07:14

+0

現在的問題是,使用下面的代碼時,不存在註釋。類im加載只是一個JUnit4 TestSuite。 URL classUrl; classUrl = testSuiteDir.toURI()。toURL(); URL [] classUrls = {classUrl}; URLClassLoader ucl = new URLClassLoader(classUrls); 類 cls = ucl.loadClass(clazz.getClassName()); (cls.isAnnotationPresent(SuiteClasses.class)){ \t System.out.println(「true」); } else { \t System.out.println(「false」); } – jantox 2012-07-18 06:38:02