在 eclipse 项目的 build_path 中迭代 类
Iterating classes in build_path of eclipse project
是否可以访问 eclipse java 项目的 build_path 中的所有 类?
我正在开发应该提供新弹出菜单项的 eclipse 插件,右键单击导航器视图中的项目,
我希望能够执行一些涉及反射的逻辑,因为我需要能够迭代该项目构建路径中的所有 classes/jars。
所以,再一次,我怎样才能获得 build_path 类?
这是一个相当宽泛的问题,需要大量代码,所以我只介绍一些基础知识。
假设您有项目的 IProject
,您可以获得您需要的 IJavaProject
对象:
IProject project = ....
IJavaProject javaProject = JavaCore.create(project);
然后您可以获取构建路径中对象的 class 路径条目:
IClasspathEntry [] entries = javaProject.getResolvedClasspath(false);
这为您提供了一个条目数组,其中包含已解析的所有变量。
您必须查看此列表中的每个条目。该条目可以是几种不同类型中的一种。
entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
该条目是一个 jar 或文件夹库,可能在工作区中(相对路径)或工作区外部(绝对路径)。
entry.getEntryKind() == IClasspathEntry.CPE_PROJECT
条目是另一个项目。您还必须解决该项目的路径。
是否可以访问 eclipse java 项目的 build_path 中的所有 类?
我正在开发应该提供新弹出菜单项的 eclipse 插件,右键单击导航器视图中的项目,
我希望能够执行一些涉及反射的逻辑,因为我需要能够迭代该项目构建路径中的所有 classes/jars。
所以,再一次,我怎样才能获得 build_path 类?
这是一个相当宽泛的问题,需要大量代码,所以我只介绍一些基础知识。
假设您有项目的 IProject
,您可以获得您需要的 IJavaProject
对象:
IProject project = ....
IJavaProject javaProject = JavaCore.create(project);
然后您可以获取构建路径中对象的 class 路径条目:
IClasspathEntry [] entries = javaProject.getResolvedClasspath(false);
这为您提供了一个条目数组,其中包含已解析的所有变量。
您必须查看此列表中的每个条目。该条目可以是几种不同类型中的一种。
entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
该条目是一个 jar 或文件夹库,可能在工作区中(相对路径)或工作区外部(绝对路径)。
entry.getEntryKind() == IClasspathEntry.CPE_PROJECT
条目是另一个项目。您还必须解决该项目的路径。