部署了eclipse插件时,MessageBox不会出现?

时间:2013-03-11 03:45:18

标签: eclipse eclipse-plugin eclipse-rcp

我编写了一个Eclipse插件,并在Eclipse“帮助”菜单中添加了帮助选项。单击该帮助后,将显示MessageBox。

当Eclipse应用程序运行或调试时会出现此MessageBox但是当我在其他PC上部署此插件并单击帮助时,MessageBox不会出现。

这是我的代码:

public class MyHelp implements IWorkbenchWindowActionDelegate {

    public void run(IAction arg0) {

        try {

        String message = "This is demo data";

        // TODO Auto-generated method stub
        MessageBox box = new MessageBox(new Shell(), SWT.OK);
        box.setMessage(message);
        box.setText("Help title");
        box.open();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

任何人都可以帮我解决这个问题吗?

为了帮助我在我的插件中添加了一个ActionSet:

<extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            id="com.my.plugin.actionSet"
            label="My ActionSet"
            visible="true">
         <menu
               id="mymenu"
               label="My Menu" 
               path="help/helpStart">
            <groupMarker
                  name="start">
            </groupMarker>
            <separator
                  name="additions">
            </separator>
         </menu>
         <action
               class="com.myexample.MyHelp"
               id="MyHelp"
               label="Use Help"
               icon="icons/plugin_help.png"
               menubarPath="help/mymenu/start"
               style="push">
         </action>
        </actionSet>
   </extension>

我还需要做其他事吗?

1 个答案:

答案 0 :(得分:0)

如果您正在运行eclipse&gt; = 3.3,那么您可以将其放到plugins文件夹中。另外,尝试使用-clean option重新启动日食。

我建议您使用dropins文件夹进行手动安装。请参阅文档:http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins

<强> Upd1: 为了运行你的代码我必须添加一些未实现的方法(我使用的是eclipse版本3.6):

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class MyHelp implements IWorkbenchWindowActionDelegate {

    public void run(final IAction arg0) {

        final String message = "This is demo data";

      // TODO Auto-generated method stub
        final MessageBox box = new MessageBox(new Shell(), SWT.OK);
        box.setMessage(message);
        box.setText("Help title");
        box.open();

   }

    public void selectionChanged(final IAction action, final ISelection selection) {
        // TODO Auto-generated method stub

    }

    public void dispose() {
        // TODO Auto-generated method stub

    }

    public void init(final IWorkbenchWindow window) {
        // TODO Auto-generated method stub

    }
}

另外,请检查您的插件MANIFEST是否有以下行: Bundle-SymbolicName: your_plugin_id;singleton:=true 我刚刚将工作区中的插件复制到我的eclipse实例的dropins文件夹中,它开箱即用。

您确定,该插件清单位于jar文件中吗?查看Bin选项卡或build.properties以确保所有内容都正确导出。

希望这有帮助