private void processRootDirectoryJar() throws JavaModelException,CoreException { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); System.out.println("root" + root.getLocation().toOSString()); IProject[] projects = root.getProjects(); // process each project for (IProject project : projects) { System.out.println("project name: " + project.getName()); if (project.isNatureEnabled("org.eclipse.jdt.core.javanature")) { IJavaProject javaProject = JavaCore.create(project); IPackageFragment[] packages = javaProject.getPackageFragments(); // process each package for (IPackageFragment aPackage : packages) { // We will only look at the package from the source folder // K_BINARY would include also included JARS, e.g. rt.jar // only process the JAR files if (aPackage.getKind() == IPackageFragmentRoot.K_BINARY && aPackage.getElementName().equals("java.lang")) { System.out.println("inside of java.lang package"); for (IClassFile classFile : aPackage.getClassFiles()) { System.out.println("----classFile: " + classFile.getElementName()); // A class file has a single child of type IType. // Class file elements need to be opened before they // can be navigated. If a class file cannot be // parsed, its structure remains unknown. // Use IJavaElement.isStructureKnown to determine // whether this is the case. // System.out.println(); // classFile.open(null); for (IJavaElement javaElement : classFile .getChildren()) { if (javaElement instanceof IType) { System.out.println("--------IType " + javaElement.getElementName()); // IInitializer IInitializer[] inits = ((IType) javaElement) .getInitializers(); for (IInitializer init : inits) { System.out .println("----------------initializer: " + init.getElementName()); } // IField IField[] fields = ((IType) javaElement) .getFields(); for (IField field : fields) { System.out .println("----------------field: " + field.getElementName()); } // IMethod IMethod[] methods = ((IType) javaElement) .getMethods(); for (IMethod method : methods) { System.out .println("----------------method: " + method.getElementName()); System.out .println("----------------method return type - " + method.getReturnType()); } } } } } } } } }
eclipse 插件开发 获取项目jar包里面class信息
最新推荐文章于 2022-07-29 14:18:58 发布