1

展開可能な機能として開発しているプラ​​グインをエクスポートした後、Class Not Found Exception が発生します。

通常、生成された Jar を dropins フォルダーに配置して使用します。しかし、リソースへの変更を保存する適切な方法と思われるものを追加した後IWorkspaceRunnable、デプロイされたプラグインを実行しようとすると、not Class Def Exception が発生し始めました。(デプロイせずにプラグインをテストすると、プラグインは正常に動作することに注意してください。別名、Run as Eclipse Application)

    IWorkspaceRunnable saveTask = new IWorkspaceRunnable() {

        @Override
        public void run(IProgressMonitor monitor) throws CoreException {
            if (fileName != null) try {
                myEditor.save(new File(fileName));
                firePropertyChange(PROP_DIRTY);
                ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
            } catch (Exception e) {
                e.printStackTrace();
                JOptionPane.showMessageDialog(null, "Error while saving: \n"+e.toString());
            }
        }
    };
    try {
        ResourcesPlugin.getWorkspace().run(saveTask, null);
    } catch (CoreException e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, "Error while saving: \n"+e.toString());
    }

これを機能させる方法はありますか?

org.eclipse.core.resourcesを保持するIWorkspaceRunnableは、「プラグインの依存関係」フォルダーに既に存在します。ある時点で自動的にそこに到達したと思います。その特定のjarファイルを配置/参照する必要がある場所は他にありますか? org.eclipse.* から使用している他のクラスについては、他に何もしていません。

編集: ここに MANIFEST.MF があります

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyPlugin
Bundle-SymbolicName: MyPlugin;singleton:=true
Bundle-Version: 1.0.0.1
Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.ui
 ,org.eclipse.core.runtime,org.eclipse.jface.text,org.eclipse.ui.edito
 rs,org.eclipse.ui.ide,org.eclipse.core.resources;visibility:=reexport
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-Vendor: myVendor
Bundle-ClassPath: /usr/share/eclipse/plugins/,.

プラグインのデプロイ方法:

.jar を /home//.eclipse/org.eclipse.platform_/dropins/ に配置し、バージョンは 4.2.0_1543616141 です。これは適切な展開方法ではないかもしれませんが、 への参照を追加する前は機能していましたorg.eclipse.core.resources

dropins フォルダーにドロップして実行できるスタンドアロン風のプラグインを作成することに興味があります。

4

1 に答える 1

0

ClassNotFoundExceptionクラスパスに何かが欠けていることを示します。クラスパスにライブラリがない可能性があります。

名前が示すように、Java の classNotFoundException は java.lang.Exception のサブクラスであり、Java 仮想マシンが特定のクラスをロードしようとして、要求されたクラスがクラスパスに見つからない場合に発生します。

于 2013-06-25T14:06:10.027 に答える