使用Eclipse Abstract Syntax Tree运行时错误

Shi*_*hen 5 java eclipse-jdt

我正在尝试在非插件环境中使用AST解析器.代码编译,但我得到以下运行时错误:

org.eclipse.jdt.core中org.eclipse.jdt.core.dom.ASTParser.(ASTParser.java:189)中的线程"main"java.lang.NoClassDefFoundError:org/eclipse/core/resources/IResource中的异常. dom.ASTParser.newParser(ASTParser.java:118)

这是我正在运行的代码:

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.dom.*;

public class TestAST
{

private void runTest()
{
    String helloStr ="\n"+
    "public class HelloWorld {\n"+
    "\n"+
    "   private String name=\"\"\n\n"+
    "   /**\n"+
    "    * \n"+
    "    */\n"+
    "    public void sayHello() {\n"+
    "    System.out.println(\"Hello \"+name+\"!\");\n"+
    "    }\n"+
    "\n"+
    "}";

    ASTParser parser = ASTParser.newParser(AST.JLS3); 
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setSource(helloStr.toCharArray());
    parser.setResolveBindings(true);
    ASTNode tree = parser.createAST(null);
    tree.toString();

}

public static void main(String args[])
{
    TestAST ast = new TestAST();
    ast.runTest();
}
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?

提前致谢,

雪莉

Ash*_*Ash 3

当您启动应用程序时,该类IResource不在您的类路径中。

如果您不使用 Eclipse(或其他工具)来管理依赖项,则必须跟踪抽象语法树类所需的每个 jar 文件,并手动将它们包含在类路径中。我不确定具体有多少,但 Eclipse 由数十个插件组成,手动计算构建依赖项将是一件苦差事。

编辑:要将 IResorce 添加到类路径,您要查找的特定 jar 文件将被称为类似 的名称org.eclipse.core.resources_3.5.0.v20090512.jar,具体取决于您的 Eclipse 版本。但我不认为这将是您唯一需要的......