5

非プラグイン環境で AST パーサーを使用しようとしています。コードはコンパイルされますが、次のランタイム エラーが発生します。

スレッド「メイン」での例外 java.lang.NoClassDefFoundError: org/eclipse/core/resources/IResource at org.eclipse.jdt.core.dom.ASTParser.(ASTParser.java:189) at 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();
}
}

なぜこれが起こっているのか誰にも分かりますか?

前もって感謝します、

シャーリー

4

3 に答える 3

4

私は最近、同様の問題に遭遇し、一度に 1 つの依存関係をゆっくりと修正しました。これが、私が思いついた必要な依存関係のリストです。これが、同じタスクを実行しようとする人々の時間を節約できることを願っています。

リスト (下の図と一致):

  • ContentType (org.eclipse.core.contenttype)
  • ジョブ (org.eclipse.core.jobs)
  • リソース (org.eclipse.core.resources)
  • ランタイム (org.eclipse.core.runtime)
  • Equinox Common (org.eclipse.equinox.common)
  • Equinox 設定 (org.eclipse.equinox.preferences)
  • JDT (org.eclipse.jdt)
  • JDT コア (org.eclipse.jdt.core)
  • OSGI (org.eclipse.osgi)
  • OSGI サービス (org.eclipse.osgi.services)
  • OSGI ユーティリティ (org.eclipse.osgi.util)

これらの JAR はすべて、Eclipse プラグイン ディレクトリに既に含まれている可能性が高く、外部 JAR として追加することで、それらを検索してビルド パスに追加できます。

ここに画像の説明を入力

于 2012-02-03T04:13:46.403 に答える
3

IResourceアプリケーションを起動したとき、クラスはクラスパスにありません。

Eclipse(または他のツール)を使用して依存関係を管理していない場合は、抽象構文木クラスが必要とするすべてのjarファイルを追跡し、それらをクラスパスに手動で含める必要があります。これがいくつあるかは正確にはわかりませんが、Eclipseは数十のプラグインで構成されており、ビルドの依存関係を手動で処理するのは面倒です。

編集:クラスパスにIResorceを追加するために、探している特定のjarファイルはorg.eclipse.core.resources_3.5.0.v20090512.jar、Eclipseのバージョンに応じて、のような名前になります。しかし、私はそれがあなたが必要とする唯一のものになるとは思わない...

于 2009-12-14T22:30:15.177 に答える
0

私も同じ問題を抱えていました。plugin.xmlの必要な依存関係にjarを追加することを解決しました。これは、plugin.xml ファイルの [依存関係] タブにあります。

于 2015-05-20T13:15:46.790 に答える