0

カスタマイズされた Eclipse プラグインを作成しています。基本は Lua コードです。スタンドアロン IDE をビルドしたいので、Application クラスと LuaNature クラスがあります。

plugin.xml次のようになります。

 <extension
       id="application"
       point="org.eclipse.core.runtime.applications">
    <application>
       <run
           class="com.my.ide.Application">
       </run>
    </application>
 </extension>
.
.
.

<extension
         id="id1"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="com.my.ide.core.LuaNature">
         </run>
      </runtime>
   </extension>

Application.class次のようになります。

public class Application implements IApplication {

    /* (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
     */
    public Object start(IApplicationContext context) throws Exception {
        Display display = PlatformUI.createDisplay();
        try {
            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
            if (returnCode == PlatformUI.RETURN_RESTART)
                return IApplication.EXIT_RESTART;
            else
                return IApplication.EXIT_OK;
        } finally {
            display.dispose();
        }

    }

    /* (non-Javadoc)
     * @see org.eclipse.equinox.app.IApplication#stop()
     */
    public void stop() {
        if (!PlatformUI.isWorkbenchRunning())
            return;
        final IWorkbench workbench = PlatformUI.getWorkbench();
        final Display display = workbench.getDisplay();
        display.syncExec(new Runnable() {
            public void run() {
                if (!display.isDisposed())
                    workbench.close();
            }
        });
    }
}

そしてLuaNature.classこのように:

public class LuaNature extends ScriptNature {
    /**
     * Nature of IDE composed from plug-in ID
     * 
     * @return String
     */
    public static final String ID = Activator.PLUGIN_ID + ".nature"; //$NON-NLS-1$
}

Lua Project の newProjectWizard を実行すると、エラーが発生します

自然は存在しません: com.my.ide.nature.

いくつかの設定がありませんか?

4

3 に答える 3

1

plugin.xml は、性質が id com.my.ide.id1notを持つことを宣言しcom.my.ide.natureます。

于 2013-08-23T11:03:57.053 に答える
1

同様の問題もありました。自然IDを正しく定義していないようです。この時点で、プラグインがアクティブ化されています。したがって、プロジェクトの性質が構成されている場合

 <extension
         id="id1"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="com.my.ide.core.LuaNature">
         </run>
      </runtime>
   </extension>

ここでidは、プロジェクトの性質の idである必要があります。そのため、 plugin.xmlで指定された id をプロジェクトの性質 id として使用してください。

于 2016-03-11T03:58:12.487 に答える
0

私の推測では、プラグインがアクティブ化されていない可能性があります。実行/デバッグ構成ダイアログに移動し、構成を選択してプラグインタブに移動し、プラグイン com.my.ide がチェックされていることを確認し、次に検証をクリックして、チェックされていることがわかったら依存関係がないかどうかを確認することをお勧めします. その場合は、[必要な依存関係を追加] をクリックしてみてください。プラグインが起動構成に含まれていることを確認し、依存関係が欠落していないことを確認したら、アプリを再度実行します。それでも問題が解決しない場合は、起動構成ダイアログに戻り、引数タブで -console をプログラム引数テキスト領域に追加します。アプリケーションを再度起動し、コンソールで「start com.my.ide」と入力して、プラグインがアクティブになる原因となっている他のエラーがないことを確認します。

于 2013-08-21T17:00:13.293 に答える