Eclipse从.java文件创建CompilationUnit

如何将.java文件加载到CompilationUnit中? 例如,假设我当前项目中有一个A.java文件。 我想将它加载到CompilationUnit中,然后将其传递给ASTParser。 只是将它作为纯文本加载它不是一个选项,因为在这种情况下我似乎不会获得AST中的绑定信息。

您可以使用jdteclipse core库加载项目。

使用以下代码,您可以加载工作区中的所有项目。

 IWorkspace workspace = ResourcesPlugin.getWorkspace(); IWorkspaceRoot root = workspace.getRoot(); // Get all projects in the workspace IProject[] projects = root.getProjects(); 

然后你可以得到包,反过来java文件。

 IPackageFragment[] packages = JavaCore.create(project).getPackageFragments(); IPackageFragment mypackage = packages.get(0); // implement your own logic to select package ICompilationUnit unit = mypackage.getCompilationUnits(); 

然后,您可以使用此ICompilationUnit对象来获取CompilationUnit

 ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setSource(unit); parser.setResolveBindings(true); CompilationUnit cUnit = parser.createAST(null); 

此CompilationUnit对象可以传递给ASTParser。