下面是我尝试从我得到的旧代码中重用的插件代码。 该插件无法正常运行。 我已经复制了代码的插件部分。
请帮我解决问题。
- 关于在 Eclipse Helios 中运行
更新了新的错误图像
但我使用的是 JDK 1.6 更新了新的错误图像 - 一旦我能够在 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/