【问题标题】:How to run an eclipse workbench action如何运行 Eclipse 工作台操作
【发布时间】:2010-08-23 14:07:30
【问题描述】:

我正在开发一个 Eclipse 插件。我已经声明了一个包含一个操作的操作集,但是当调用该操作时,它并没有做它应该做的事情。

这是动作的类。

package instantmessengerplugin;

import java.io.IOException;


import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;


public class ActionClass implements IWorkbenchWindowActionDelegate {

    @Override
    public void dispose() {
        // TODO Auto-generated method stub

    }

    @Override
    public void init(IWorkbenchWindow window) {
        //this.window = window;

    }

    @Override
    public void run(IAction arg0) {
        System.out.println("hello");
        Connection.main(null);
    }

    @Override
    public void selectionChanged(IAction arg0, ISelection arg1) {
        // TODO Auto-generated method stub

    }

}

所以我知道这个类可以正常工作,因为 run 方法中的 print 语句执行得很好。

Connection 包含在我添加到类路径中的 jar 中。它存在于项目的引用库中。我的目标是让动作启动 jar 文件。

我已经在 Connection.main 行上运行了调试器。

这是我进入这一行时的堆栈:

EventTable.sendEvent(Event) line: 87    
ToolItem(Widget).sendEvent(Event) line: 1003    
Display.runDeferredEvents() line: 3880  
Display.readAndDispatch() line: 3473    
Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2405    
Workbench.runUI() line: 2369    
Workbench.access$4(Workbench) line: 2221    
Workbench$5.run() line: 500 
Realm.runWithDefault(Realm, Runnable) line: 332 
Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 493    
PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149   
IDEApplication.start(IApplicationContext) line: 113 
EclipseAppHandle.run(Object) line: 194  
EclipseAppLauncher.runApplication(Object) line: 110 
EclipseAppLauncher.start(Object) line: 79   
EclipseStarter.run(Object) line: 368    
EclipseStarter.run(String[], Runnable) line: 179    
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]  
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available   
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available   
Method.invoke(Object, Object...) line: not available    
Main.invokeFramework(String[], URL[]) line: 559 
Main.basicRun(String[]) line: 514   
Main.run(String[]) line: 1311   
Main.main(String[]) line: 1287  

我不知道该怎么做。我敢肯定,如果我理解了这个堆栈,我将能够修复它。

谁能看出问题所在?从 Eclipse 操作中启动 jar 是否有问题?

【问题讨论】:

    标签: java eclipse plugins jar action


    【解决方案1】:

    也许 Jar 是用比 eclipse 当前使用的更新的 jdk 构建的。我过去也遇到过类似的问题。

    【讨论】:

    • 我使用eclipse生成了jar文件。我不知道这是否意味着它是同一个JDK。是否仍然取决于不同的 JDK 版本?
    • 是的,如果用于构建的 jdk 比默认的更新。检查构建设置和默认 java 路径。
    【解决方案2】:

    一个异常被事件处理程序抛出并吃掉了。此异常可能在错误日志中,因此查看该异常可能会给您更多提示。

    问题可能是多方面的,但很可能是由于某种原因无法加载 Connection 类并抛出 ClassNotFoundException。

    【讨论】:

      猜你喜欢
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 2021-02-04
      • 2023-01-05
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多