Java Eclipse插件开发初学者 公共类激活器扩展了AbstractUIPlugin{ //插件ID 公共静态最终字符串PLUGIN_ID=“my.PLUGIN.alps”/$NON-NLS-1$ //共享实例 私有静态激活器插件; /** *构造器 */ 公共激活器(){ } 公共静态void main(字符串[]args){ getDefault(); } public void start(BundleContext)引发异常{ super.start(上下文); plugin=这个; } 公共void stop(BundleContext上下文)引发异常{ plugin=null; super.stop(上下文); } 公共静态激活器getDefault(){ 返回插件; } 公共布尔值isEnabled(){ //TODO自动生成的方法存根 返回true; } 公共静态ImageDescriptor getImageDescriptor(字符串路径){ 返回imageDescriptorFromPlugin(插件ID,路径); } } 公共类SampleHandler扩展了AbstractHandler{ @凌驾 公共对象执行(ExecutionEvent事件)引发ExecutionException{ IWorkbenchWindow=HandlerUtil.getActiveWorkbenchWindowChecked(事件); MessageDialog.openInformation( window.getShell(), “阿尔卑斯山”, “用于生成代码”); 返回null; } } 我希望它是可点击的,并做一些事情。我不知道在哪里添加其函数的源代码。

Java Eclipse插件开发初学者 公共类激活器扩展了AbstractUIPlugin{ //插件ID 公共静态最终字符串PLUGIN_ID=“my.PLUGIN.alps”/$NON-NLS-1$ //共享实例 私有静态激活器插件; /** *构造器 */ 公共激活器(){ } 公共静态void main(字符串[]args){ getDefault(); } public void start(BundleContext)引发异常{ super.start(上下文); plugin=这个; } 公共void stop(BundleContext上下文)引发异常{ plugin=null; super.stop(上下文); } 公共静态激活器getDefault(){ 返回插件; } 公共布尔值isEnabled(){ //TODO自动生成的方法存根 返回true; } 公共静态ImageDescriptor getImageDescriptor(字符串路径){ 返回imageDescriptorFromPlugin(插件ID,路径); } } 公共类SampleHandler扩展了AbstractHandler{ @凌驾 公共对象执行(ExecutionEvent事件)引发ExecutionException{ IWorkbenchWindow=HandlerUtil.getActiveWorkbenchWindowChecked(事件); MessageDialog.openInformation( window.getShell(), “阿尔卑斯山”, “用于生成代码”); 返回null; } } 我希望它是可点击的,并做一些事情。我不知道在哪里添加其函数的源代码。,java,eclipse,plugins,Java,Eclipse,Plugins,我是新手,请帮帮我。 多谢各位 1.我需要它是可点击的(当我运行它时它会变灰) 2.我需要知道在哪里添加代码才能实现其功能。 i、 当我点击菜单时,它会做一些事情。。。 再一次, 我已经创建了自己的插件eclipse。 我是新来的。 如何将功能添加到为插件创建的菜单中? 每次我将其作为eclipse应用程序运行时,菜单都会变灰/无法单击。 也许我错过了什么? 蒂亚 看到上面的代码,指定的命令ID不匹配。 当您试图将命令与菜单及其处理程序关联时,命令ID应该相同。 尝试为菜单项及其各自的处理程序提

我是新手,请帮帮我。 多谢各位

1.我需要它是可点击的(当我运行它时它会变灰) 2.我需要知道在哪里添加代码才能实现其功能。 i、 当我点击菜单时,它会做一些事情。。。 再一次, 我已经创建了自己的插件eclipse。 我是新来的。 如何将功能添加到为插件创建的菜单中? 每次我将其作为eclipse应用程序运行时,菜单都会变灰/无法单击。 也许我错过了什么?
蒂亚

看到上面的代码,指定的命令ID不匹配。 当您试图将命令与菜单及其处理程序关联时,命令ID应该相同。 尝试为菜单项及其各自的处理程序提供相同的命令ID。 那么代码就可以正常工作了

请在下面找到修改后的plugin.xml:

public class Activator extends AbstractUIPlugin {

    // The plug-in ID
    public static final String PLUGIN_ID = "my.plugin.alps"; //$NON-NLS-1$

    // The shared instance
    private static Activator plugin;

    /**
     * The constructor
     */
    public Activator() {
    }
    public static void main(String[] args) {

        Activator.getDefault();
    }

    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;
    }


    public void stop(BundleContext context) throws Exception {
        plugin = null;
        super.stop(context);
    }

    public static Activator getDefault() {
        return plugin;
    }
        public boolean isEnabled() {
            // TODO Auto-generated method stub
            return true;
        }

    public static ImageDescriptor getImageDescriptor(String path) {
        return imageDescriptorFromPlugin(PLUGIN_ID, path);
    }

}

   <extension
         point="org.eclipse.ui.commands">
      <category
            name="Sample Category"
            id="my.plugin.alps.commands.category">
      </category>
      <command
            name="Code Generator"
            categoryId="my.plugin.alps.commands.category"
            id="my.plugin.alps.commands.sampleCommand">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            commandId="my.plugin.alps.commands.sampleCommand"
            class="my.plugin.alps.handlers.SampleHandler">
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="my.plugin.alps.commands.sampleCommand"
            contextId="org.eclipse.ui.contexts.window"
            sequence="M1+6"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
      </key>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
         <menu
               label="myLearning Portal for SAP (ALPS)"
               id="my.plugin.alps.menus.alps">
            <command
                  commandId="my.plugin.alps.generateCodes"
                  id="my.plugin.alps.menus.generateCodes"
                  label="Generate Codes"
                  style="push">
            </command>
            <command
                  commandId="my.plugin.alps.checkCodes"
                  id="my.plugin.alps.menus.checkCodes"
                  label="Check Codes"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>
</plugin>

public class SampleHandler extends AbstractHandler {

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        MessageDialog.openInformation(
                window.getShell(),
                "Alps",
                "Use to generate codes");
        return null;



    }
}

I want it to be clickable and do something. I don't know where to add my source code for its function. 


看,插件中没有
main
方法。Eclipse在需要时调用其他方法。@greg-449所以这个插件不可能运行?插件必须作为Eclipse的一部分运行。为了测试它,您可以使用“作为Eclipse应用程序运行”——Eclipse启动一个新的Eclipse实例,该实例包含您的插件,并且有一个单独的工作区。
<extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
         <menu
               id="my.plugin.alps.menus.alps"
               label="myLearning Portal for SAP (ALPS)">
            <command
                  commandId="my.plugin.alps.generateCodes"
                  id="my.plugin.alps.menus.generateCodes"
                  label="Generate Codes"
                  style="push">
            </command>
            <command
                  commandId="my.plugin.alps.checkCodes"
                  id="my.plugin.alps.menus.checkCodes"
                  label="Check Codes"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
         <command
               id="my.plugin.alps.generateCodes"
               name="Generate Codes">
         </command>
         <command
               id="my.plugin.alps.checkCodes"
               name="Check Codes">
         </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="TestHandler"
            commandId="my.plugin.alps.generateCodes">
      </handler>
   </extension>