Ошибка периода выполнения с помощью Абстрактного синтаксического дерева Eclipse

Я пытаюсь использовать синтаксический анализатор AST в несменной среде. Компиляции кода, но я получаю следующую ошибку периода выполнения:

Исключение в потоке "основной" java.lang. NoClassDefFoundError: org/eclipse/core/resources/IResource в org.eclipse.jdt.core.dom. ASTParser. (ASTParser.java:189) в org.eclipse.jdt.core.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();
}
}

Кто-либо знает, почему это происходит?

Заранее спасибо,

Shirley

5
задан fap 11 January 2019 в 03:10
поделиться

1 ответ

Класс IResource не находится в вашем пути к классам при запуске приложения.

Если вы не используете Eclipse (или какой-либо другой инструмент) для управления зависимостями, вам придется отслеживать каждый файл jar, который классифицируется абстрактным синтаксическим деревом. требовать и вручную включать их в свой путь к классам. Я не уверен точно, сколько их может быть, но Eclipse состоит из множества десятков плагинов, и ручная работа с зависимостями сборки будет сложной задачей.

Изменить: чтобы добавить IResorce в путь к классам, конкретный jar файл, который вы ищете, будет называться примерно так org.eclipse.core.resources_3.5.0.v20090512.jar , в зависимости от вашей версии Eclipse. Но не думаю, что это единственное, что вам понадобится ...

3
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: