使用IWorkspaceRunnable后找不到类

时间:2013-06-18 16:24:44

标签: java eclipse eclipse-plugin classnotfoundexception

导出我正在开发为可部署功能的插件后,我得到了Class Not Found Exception。

通常我将生成的Jar放在dropins文件夹中,我可以使用它。但是在添加了使用IWorkspaceRunnable保存资源更改的正确方法之后,当我尝试运行已部署的插件时,我开始获得非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已存在于我的“Plug-in dependencies”文件夹中。我认为它会在某个时刻自动到达。是否有其他地方我应该放/引用那个特定的罐子?我没有为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文件夹中删除并运行的独立插​​件。

1 个答案:

答案 0 :(得分:0)

ClassNotFoundException表示类路径中缺少某些内容。也许你错过了类路径中的库。

  

顾名思义,Java中的classNotFoundException是java.lang.Exception的子类,当Java虚拟机尝试加载特定类并且未在类路径中找到所请求的类时,它就会出现。