eclipse插件开发中,获取一个java工程中的所有import的包名,并打印出来

import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IImportDeclaration;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;

public class ImportPrinter {

    public void printProjectImports(String projectName) {
        try {
            IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
            if (project.isNatureEnabled("org.eclipse.jdt.core.javanature")) {
                IJavaProject javaProject = JavaCore.create(project);
                printImports(javaProject);
            }
        } catch (CoreException e) {
            e.printStackTrace();
        }
    }

    private void printImports(IJavaProject javaProject) throws JavaModelException {
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                for (IJavaElement element : root.getChildren()) {
                    if (element instanceof IPackageFragment) {
                        IPackageFragment packageFragment = (IPackageFragment) element;
                        for (ICompilationUnit unit : packageFragment.getCompilationUnits()) {
                            printUnitImports(unit);
                        }
                    }
                }
            }
        }
    }

    private void printUnitImports(ICompilationUnit unit) throws JavaModelException {
        for (IImportDeclaration importDecl : unit.getImports()) {
            System.out.println("Import in " + unit.getElementName() + ": " + importDecl.getElementName());
        }
    }
}

在这段代码中:

  • ResourcesPlugin.getWorkspace().getRoot().getProject(projectName) 获取指定名称的项目。
  • project.isNatureEnabled("org.eclipse.jdt.core.javanature") 检查项目是否是Java项目。
  • javaProject.getPackageFragmentRoots() 获取项目中所有的包根元素。
  • root.getKind() == IPackageFragmentRoot.K_SOURCE 确保只处理源代码文件。
  • packageFragment.getCompilationUnits() 获取包中的所有编译单元(即Java文件)。
  • unit.getImports() 获取每个编译单元中的所有import声明。

这段代码将遍历指定Java工程中的所有源代码文件,并打印出每个文件中的所有import语句。确保在开发Eclipse插件时,你的插件项目已经正确配置了对Eclipse JDT的依赖。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值