2012-01-19 84 views
1

下面是我嘗試從舊手代碼中重用的插件代碼。 該插件只是不會正常運行。 我已經複製了代碼的插件部分。Java:Eclipse插件創建問題

請幫我解決問題。

  1. 在Eclipse的赫利俄斯運行error on running the plugin
    更新的新的錯誤形象 validation message for plugin
    但我使用JDK 1.6 更新的新的錯誤形象
  2. 一旦我能夠運行該插件在RAD在調試模式下,但無法將其安裝在rad中作爲插件。由於創建的插件jar在啓動時未在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> 
+0

您能否指定遇到的問題。這不是一個調試網站 –

+0

糟糕!添加了這個問題 –

+0

您是否試圖將該jar添加爲插件依賴項,因爲您已經顯示的對話框,它似乎無法找到合適的類&dnt忘記添加激活器類。最佳方法是,創建一個模板由Eclipse提供的插件項目,然後添加您的代碼。 – Eshika

回答

0

喲你還應該給你的MANIFEST.MF做完整的診斷,但最可能的原因是你正在使用與你的開發Eclipse實例運行的JDK不同的JDK運行RAD(並且它比你的bundle目標環境早在MANIFEST.MF中設置爲JavaSE-1.6)。

這可能是您可以在調試模式下成功運行RAD的原因,但不能作爲獨立應用程序運行。請查看RAD實例的日誌並查看「java.version =」值。它應該是1.6 ...或更高版本。