我正在研究一個需要構建一個類加載器的Eclipse插件,該類可以訪問Eclipse中項目的類路徑中的所有內容。我有一個IJavaProject,我試圖建立一個網址列表傳遞給一個URLClassLoader的:如何在Eclipse插件中獲取IJavaProject的類路徑作爲文件路徑?
final IClasspathEntry[] resolvedClasspath = javaProject.getResolvedClasspath(true);
for (IClasspathEntry classpathEntry : resolvedClasspath) {
urls.add(classpathEntry.getPath().makeAbsolute().toFile().getCanonicalFile().toURL());
}
但是,任何項目依賴關係(無論是手動添加,或從Maven插件的「Maven依賴」容器)顯示爲只是「file:/ projectName」,而不是絕對路徑。
其他實驗涉及使用javaProject.getAllPackageFragmentRoots(),但這似乎並沒有包含「Maven Dependencies」容器內的項目依賴關係。