我正在尝试以编程方式访问Eclipse项目中的src /目录(类型为IProject)。
基本上,我的问题如下:
关于我如何做到这一点的任何指示?
答案 0 :(得分:8)
IProject
投射到IJavaProject
。IPackageFragmentRoot
getAllPackageFragmentRoots()
数组
getKind() == IPackageFragmentRoot.K_SOURCE
答案 1 :(得分:2)
对于第一点,最后一个答案对我不起作用,但是接着这样做了:
IProject project = ...
if (project.isOpen() && JavaProject.hasJavaNature(project))
{
IJavaProject javaProject = JavaCore.create(project);
...
}
答案 2 :(得分:0)
我遇到了同样的问题,这里是代码:
if (project == null) return null;
List<IJavaElement> ret = new ArrayList<IJavaElement>();
IJavaProject javaProject = JavaCore.create(project);
try {
IPackageFragmentRoot[] packageFragmentRoot = javaProject.getAllPackageFragmentRoots();
for (int i = 0; i < packageFragmentRoot.length; i++){
if (packageFragmentRoot[i].getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && !packageFragmentRoot[i].isArchive())
ret.add(packageFragmentRoot[i]);
}
} catch (JavaModelException e) {
e.printStackTrace();
return null;
}
return ret;