1

我正在使用 Eclipse ast/jdt,如本文所述 -如何在 Eclipse 之外的项目中使用 java Eclipse 抽象语法树?(即不是 Eclipse 插件)

问题是,当我尝试使用时,我总是得到 null resolveBinding(),这是因为没有使用setProject(IJavaProject) or setEnvironment(String[], String[], String[], boolean),正如这篇文章中所写 - VariableDeclarationFragment node resolveBindind() 在 eclipse/jdt/ast 中返回 null

解决返回 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>
4

1 回答 1

2

您不在 Plug-In/Bundle Runtime 中,因此 org.eclipse.core.resources 插件没有“启动”。工作区和相关对象的初始化仅在那时发生。您必须自己调用 ResourcesPlugin 上的 start() 方法——并不是说我保证会解决所有问题,或者这不会给您带来其他问题。

于 2012-10-09T05:35:10.117 回答