1

この投稿で説明されているように、Eclipse ast / jdtを使用しています-Eclipseの外部のプロジェクトでJavaEclipse抽象構文木を使用するにはどうすればよいですか?(つまり、日食プラグインではありません)

問題は、この投稿に書かれているように、を使用しようとすると常にnullになることです。これはresolveBinding()、を使用していないためです。VariableDeclarationFragmentノードresolveBindind()は、eclipse / jdt/astでnullを返します。setProject(IJavaProject) or setEnvironment(String[], String[], String[], boolean)

返される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

プラグイン/バンドルランタイムを使用していないため、org.eclipse.core.resourcesプラグインが「開始」されていません。ワークスペースと関連オブジェクトの初期化は、その場合にのみ行われます。ResourcesPluginのstart()メソッドを自分で呼び出す必要があります。これですべてが解決することを約束しているわけではなく、他の問題が発生することもありません。

于 2012-10-09T05:35:10.117 に答える