我创建了一个工作台应用程序插件而不是eclipse rcp应用程序。我还没有为该工作台应用程序创建任何插件模板。 现在当我运行工作台应用程序Activator没有调用。我把System.out.println(“Insided start()”)里面的 Activator.java的启动方法里面。但它没有调用启动方法。我如何打电话给开始方法?但是当我做出选择时,Autostart = true在运行配置中,插件, 它正在启动激活器。但问题是当我打电话给IWorkbenchWindow窗口= Workbench.getInstance()。getActiveWorkbenchWindow(); 它给出的错误消息说不能创建工作台窗口。只有当我将此插件作为AutoStart = true时,才会显示此错误消息。可能是什么问题呢?Eclipse工作台应用程序启动问题
以下是错误消息我get..When我用
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
java.lang.IllegalStateException:工作台还没有被创建。 在org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92)在 myworkbenchplugin.Activator.custom(Activator.java:43)处 有机 myworkbenchplugin.Activator.start(Activator.java:36)。 eclipse.osgi.framework.internal.core.BundleContextImpl $ 1.run(BundleContextImpl.java:783) at java.security.AccessController.doPrivileged(Native Method)at org.eclipse.osgi.framework.internal.core.BundleContextImpl。 startActivator(BundleContextImpl.java:774) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) 在 org.eclipse.osgi.framework.internal.core.BundleHost。 startWorker(BundleHost.java:370) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 在 org。 eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) 在 org.eclipse。 osgi.framework.eventmgr.EventManager $ EventThread.run(EventManager.java:337)
感谢您的信息。 我仍然遇到同样的问题。当我使用PlatformUI.getWorkbench()。getActiveWorkbenchWindow()时,它显示Workbench尚未创建的异常。但是当我Workbench.getInstance()。getActiveWorkbenchWindow()时,它显示的是 窗口,IWorkbenchWindow为null。 还有一件事我调试时得到了所有这些例外。它不是在控制台中。任何想法为什么它不显示在 控制台?它在控制台中显示的一些例外情况。 – Bhanu 2010-09-16 07:32:50
@Bhanu:你有确切的错误信息? – VonC 2010-09-16 07:51:55
不,我没有确切的错误信息。当我调试只知道它是抛出异常..并且该异常是Workebnch未创建。但是当我使用代码Workench.getInstance()。getActiveWorkebenchWindow()时,它返回null。 – Bhanu 2010-09-16 09:13:09