当前位置:   article > 正文

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

eclipse插件开发中,获取一个java工程中的所有import的包名,并打印出来
  1. import org.eclipse.core.resources.IProject;
  2. import org.eclipse.core.resources.IResource;
  3. import org.eclipse.core.resources.ResourcesPlugin;
  4. import org.eclipse.core.runtime.CoreException;
  5. import org.eclipse.jdt.core.ICompilationUnit;
  6. import org.eclipse.jdt.core.IImportDeclaration;
  7. import org.eclipse.jdt.core.IJavaElement;
  8. import org.eclipse.jdt.core.IJavaProject;
  9. import org.eclipse.jdt.core.IPackageFragment;
  10. import org.eclipse.jdt.core.IPackageFragmentRoot;
  11. import org.eclipse.jdt.core.JavaCore;
  12. import org.eclipse.jdt.core.JavaModelException;
  13. public class ImportPrinter {
  14. public void printProjectImports(String projectName) {
  15. try {
  16. IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
  17. if (project.isNatureEnabled("org.eclipse.jdt.core.javanature")) {
  18. IJavaProject javaProject = JavaCore.create(project);
  19. printImports(javaProject);
  20. }
  21. } catch (CoreException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. private void printImports(IJavaProject javaProject) throws JavaModelException {
  26. IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
  27. for (IPackageFragmentRoot root : roots) {
  28. if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
  29. for (IJavaElement element : root.getChildren()) {
  30. if (element instanceof IPackageFragment) {
  31. IPackageFragment packageFragment = (IPackageFragment) element;
  32. for (ICompilationUnit unit : packageFragment.getCompilationUnits()) {
  33. printUnitImports(unit);
  34. }
  35. }
  36. }
  37. }
  38. }
  39. }
  40. private void printUnitImports(ICompilationUnit unit) throws JavaModelException {
  41. for (IImportDeclaration importDecl : unit.getImports()) {
  42. System.out.println("Import in " + unit.getElementName() + ": " + importDecl.getElementName());
  43. }
  44. }
  45. }

在这段代码中:

  • 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的依赖。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号