Eclipse从.java文件创建CompilationUnit

时间:2012-06-23 04:31:06

标签: java eclipse eclipse-jdt abstract-syntax-tree compilationunit

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

2 个答案:

答案 0 :(得分:9)

您可以使用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。

答案 1 :(得分:0)

我发现this article似乎可以满足您的要求。