Java:Eclipse 插件创建问题

标签 java eclipse-plugin

下面是我尝试从我得到的旧代码中重用的插件代码。 该插件无法正常运行。 我已经复制了代码的插件部分。

请帮我解决问题。

  1. 关于在 Eclipse Helios 中运行 error on running the plugin
    更新了新的错误图像 validation message for plugin
    但我使用的是 JDK 1.6 更新了新的错误图像
  2. 一旦我能够在 RAD 中以 Debug模式运行该插件,但无法将其作为插件安装在 rad 中。由于启动时在 Eclipse 或 RAD 中未检测到创建的插件 jar。

这里试图实现的想法是在用户尝试调用插件时获取<项目文件夹位置>。并将其作为参数传递给独立代码。

Activator.java

public class Activator extends AbstractUIPlugin {

    // The plug-in ID
    public static final String PLUGIN_ID = "PluginName";

    // The shared instance
    private static Activator plugin;


    public Activator() {
        plugin = this;
    }


    public void start(BundleContext context) throws Exception {
        System.out.println("Loading the PluginName");
        super.start(context);
    }


    public void stop(BundleContext context) throws Exception {
        plugin = null;
        System.out.println("Exiting the PluginName");
        super.stop(context);
    }

    public static Activator getDefault() {
        return plugin;
    }


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

FindUnwantedJarAction.java

import org.eclipse.core.resources.IProject;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;


public class FindUnwantedJarAction implements IObjectActionDelegate {
    private IStructuredSelection selection;

    public void setActivePart(IAction arg0, IWorkbenchPart arg1) {
        // TODO Auto-generated method stub

    }

    public void run(IAction arg0) {
        IProject project = (IProject) selection.getFirstElement();
        String projName = project.getName();
        String projectLocation = project.getLocation().toString();

        //call another class with this parameter
    }

    public void selectionChanged(IAction arg0, ISelection paramSelection) {
        this.selection = (IStructuredSelection) paramSelection;
    }

}

Plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>

   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            objectClass="org.eclipse.core.resources.IProject"
            adaptable="true"
            id="core.UnwantedJar">
         <menu
               label="Find Unwanted Jars"
               path="additions"
               id="FindUnJar.menu1">
            <separator
                  name="group1">
            </separator>
         </menu>
         <action
               label="Find!!!"
               class="core.marksman.action.FindUnwantedJarAction"
               menubarPath="FindUnJar.menu1/group1"
               enablesFor="1"
               id="CVSLocal.newAction">
         </action>
      </objectContribution>
   </extension>

</plugin>

最佳答案

您还应该提供 MANIFEST.MF 进行全面诊断,但最可能的原因是您运行 RAD 时使用的 JDK 与您的开发 Eclipse 实例运行时使用的 JDK 不同(并且它早于您的包)目标环境在 MANIFEST.MF 中设置为 JavaSE-1.6)。

这可能是您可以在 Debug模式下成功运行 RAD 但不能作为独立应用程序运行的原因。请查看 RAD 实例的日志并查看“java.version=”值。应该是 1.6... 或更高版本。

关于Java:Eclipse 插件创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925215/

相关文章:

eclipse-plugin - 强制 Eclipse (Helios) 在应用程序运行时使用较新版本的 SWT

php - 我可以在不使用 Apache 的情况下在 Eclipse PDT 下调试 PHP 文件吗?

java - 无法将 android.support.v4.view.MenuItemCompat 转换到 android.widget.ShareActionProvider

java - 将 jar 添加到 ec2 实例上的 tomcat 的 lib 文件夹中

java - 何时在程序中使用短、字节和十六进制基本类型?

java - 在 Eclipse IProject 中获取 src 目录?

java - 如何使用 IJavaElement

java - 如何为 Android 创建类似 iphone 的搜索

java - HTTPS 请求仅在低于 20 的 Android API 上挂起,即使设置了连接超时也是如此

javascript - Nodeclipse:调试时崩溃(Mars、JDK 8、Win10)