Java 启动OSGi包
我尝试在Eclipse中运行OSGi插件。它是空包,但eclipse总是向我发送错误 这是我的控制台信息Java 启动OSGi包,java,osgi,bundle,equinox,Java,Osgi,Bundle,Equinox,我尝试在Eclipse中运行OSGi插件。它是空包,但eclipse总是向我发送错误 这是我的控制台信息 怎么了?首先检查空插件的依赖项。可能是您缺少添加插件,而在运行时未加载插件 如果插件中有依赖项,请检查使用的插件版本 您在插件中定义了哪个Java版本?它是否高于运行时使用的版本 你的插件正在加载DLL吗?如果是,请检查是否可以在运行时找到DLL 编辑: # 尚未创建工作台。 # 位于org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java
怎么了?首先检查空插件的依赖项。可能是您缺少添加插件,而在运行时未加载插件 如果插件中有依赖项,请检查使用的插件版本 您在插件中定义了哪个Java版本?它是否高于运行时使用的版本 你的插件正在加载DLL吗?如果是,请检查是否可以在运行时找到DLL 编辑: # 尚未创建工作台。 # 位于org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92) # 位于org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start(MonitorUiPlugin.java:145) 您在Activator的start方法中定义了什么?
这表明您正在使用尚未创建的工作台。这是主要问题: java.lang.IllegalStateException:尚未创建工作台 您正在使用来自工作台或与工作台相关的方法/对象,而工作台本身尚未创建。也许您可以延迟捆绑包的激活,或者从捆绑包的激活/初始化部分删除“工作台”依赖项
哎呀,回到开始。日志的最后一行包含一个“Hello World”-这是包的预期输出吗?可能不是您的包导致了输出上的错误和警告。我也看到一些“mylin”和其他东西。如果可能的话,在您的系统中添加另一个干净的eclipse安装(没有额外的捆绑包/插件),并在该环境中尝试该捆绑包
从a: 这通常发生在有人试图使用Java-classpath对OSGi包运行Java应用程序时。这实际上意味着工作台插件尚未启动,因此对getWorkbench()的调用失败。这本质上是一个竞争条件,可以通过表达对该捆绑包的显式依赖关系或将该捆绑包升级到工作台以外的平台来解决。通常看不到,但如果是,就是这样 您自己的包的超类是什么?因为这可能会在工作台上引入依赖关系
以及-如何从eclipse中“启动”捆绑包,或者您是否已将其装入jar并将其放入eclipse插件文件夹中?这也可能会有所不同。在运行捆绑包之前,请尝试这样做:
if(!PlatformUI.isWorkbenchRunning()) {
PlatformUI.createAndRunWorkbench(PlatformUI.createDisplay(), new WorkbenchAdvisor() {...});
}
这些错误都与您的包无关。正如您从“Hello World”输出中所看到的,您的捆绑包刚刚开始 我相信您以错误的方式启动Eclipse,可能是急于激活所有捆绑包。Eclipse需要以“惰性激活”模式启动大多数工作台捆绑包
-console
添加到eclipse.ini
文件中
来自您自己的捆绑包MANIFEST.MF
fromconfig.ini
ECLIPSE\u HOME/configuration
fromeclipse.ini
eclipse\u HOME
问题是,默认目标包括许多与您的捆绑包无关的捆绑包——在所有错误消息完成后键入命令
ss
,将列出它们
以下是您要做的:
为了“工作台尚未创建”整整一天,我付出了很多努力 但是我通过以下步骤得到了解决方案-
谢谢它完全是空的插件是的,'你好,世界,这是我的byndle的输出。我下载了新的Eclipse-这是相同的错误:(哪里是“添加必需的包”?