Java: Eclipse Plugin создать проблему - PullRequest
1 голос
/ 19 января 2012

Ниже приведен код плагина, который я пытался использовать из старого кода, который мне достался. Плагин просто не будет работать правильно. Я скопировал часть кода плагина.

Пожалуйста, помогите мне решить проблему.

  1. при работе в Eclipse Helios error on running the plugin
    ОБНОВЛЕНО новое изображение ошибки validation message for plugin
    но я использую JDK 1.6 ОБНОВЛЕНО новое изображение ошибки
  2. Однажды я смог запустить плагин в RAD в режиме отладки, но не смог установить его в Rad как плагин. Поскольку созданный файл плагина не был обнаружен в Eclipse или RAD при запуске.

идея, которую здесь пытаются достичь , заключается в том, чтобы получить <расположение папки проекта> , когда пользователь пытается вызвать плагин. и передать его в качестве параметра в отдельный код.

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>

1 Ответ

0 голосов
/ 31 января 2012

Вы также должны предоставить файл MANIFEST.MF для полной диагностики, но наиболее вероятной причиной является то, что вы запускаете свой RAD, используя другой JDK, чем тот, с которым работает ваш экземпляр Eclipse для разработки (и он раньше, чем ваш пакет целевая среда, которая установлена ​​в JavaSE-1.6 в вашем файле MANIFEST.MF).

Это может быть причиной того, что вы можете успешно запустить RAD в режиме отладки, но не как отдельное приложение. Пожалуйста, посмотрите журнал вашего экземпляра RAD и посмотрите значение "java.version =". Это должно быть 1.6 ... или позже.

...