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 发布