获取Eclipse IProject中的src目录?

时间:2010-10-15 21:38:19

标签: java eclipse eclipse-plugin

我正在尝试以编程方式访问Eclipse项目中的src /目录(类型为IProject)。

基本上,我的问题如下:

  • INPUT:IProject
  • OUTPUT:返回此IProject中的src目录
  • 注意:src目录可能被调用(每次都不需要“src” - 在创建java项目时决定)

关于我如何做到这一点的任何指示?

3 个答案:

答案 0 :(得分:8)

  1. IProject投射到IJavaProject
  2. 使用IPackageFragmentRoot
  3. 获取getAllPackageFragmentRoots()数组
  4. 获取具有getKind() == IPackageFragmentRoot.K_SOURCE
  5. 的人

答案 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;