我正在研究一个需要构建一个类加载器的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”容器内的项目依赖关系。