在 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

条目是另一个项目。您还必须解决该项目的路径。