我正在使用Eclipse ast / jdt,正如本文中所解释的那样 - How can I use the java Eclipse Abstract Syntax Tree in a project outside Eclipse? (ie not an eclipse plugin)
问题是,当我尝试使用resolveBinding()
时,我总是变为空,这是因为没有使用setProject(IJavaProject) or setEnvironment(String[], String[], String[], boolean)
,正如此帖中所写 - VariableDeclarationFragment node resolveBindind() returns null in eclipse/jdt/ast
解决返回的null问题,我尝试使用代码,但最终收到错误Workspace is closed
。
可能出现什么问题?
我的工作区中有.project文件
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>AstRewrite4</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
答案 0 :(得分:2)
您不在Plug-In / Bundle Runtime中,因此org.eclipse.core.resources插件未“启动”。然后只会初始化工作区和关联对象。你必须自己调用ResourcesPlugin上的start()方法 - 不是说我承诺会解决所有问题,或者那不会给你带来其他问题。