首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Eclipse中运行/调试OSGi应用程序

在Eclipse中运行/调试OSGi应用程序
EN

Stack Overflow用户
提问于 2012-05-05 05:38:40
回答 1查看 6K关注 0票数 6

我们的应用程序已经迁移到OSGi,但我在Eclipse中启动/调试它时遇到了问题。过程是什么: OSGi应用程序开发人员需要设置Equinox环境,安装数百个包(jar=bundle?),然后从控制台启动吗?换句话说,启动“热插拔”应用程序与“模块化挑战”应用程序不同吗?

第二,更具体的问题。有一个bootstrap bundle,它应该负责所有的事情,但在加载了一堆类之后,它变慢了,几乎挂起了:

代码语言:javascript
复制
...
...
...
Flat profile of 0.22 secs (16 total ticks): main

  Interpreted + native   Method                        
 16.7%     1  +     0    java.awt.Toolkit.addAWTEventLi[Loaded java.awt.SentEvent from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
stener
 16.7%     1  +     0    jav[Loaded java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
a.util.regex.Pattern.compile
 16.7%     1  +     0    sun.util.logging.PlatformLogger.<init>
 50.0%     3  +     0    Total interpreted

  Thread-local ticks:
 62.5%    10             Blocked (of total)
 50.0%     3             Class loader

...
...
...
[Loaded sun.reflect.Label$PatchInfo from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded sun.reflect.MethodAccessorGenerator$1 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded sun.reflect.ClassDefiner from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded sun.reflect.ClassDefiner$1 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded sun.reflect.GeneratedMethodAccessor1 from __JVM_DefineClass__]
[Dynamic-linking native method sun.java2d.DefaultDisposerRecord.invokeNativeDispose ... JNI]
[Dynamic-linking native method java.lang.ref.Finalizer.invokeFinalizeMethod ... JNI]

编辑:自问题发布以来取得了一些进展

代码语言:javascript
复制
[Loaded sun.reflect.GeneratedMethodAccessor1 from __JVM_DefineClass__]
[Dynamic-linking native method sun.java2d.DefaultDisposerRecord.invokeNativeDispose ... JNI]
[Dynamic-linking native method java.lang.ref.Finalizer.invokeFinalizeMethod ... JNI]
--- new stuff --- 
[Loaded sun.awt.windows.WComponentPeer$2 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Dynamic-linking native method sun.awt.windows.WInputMethod.disableNativeIME ... JNI]

因此,它不是一个死锁,是什么让它如此缓慢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-05 08:35:07

在Eclipse中启动和调试应该相当简单。诀窍(在我看来)是意识到你所需要的所有Eclipse支持都被标记为“插件”而不是“OSGi”。使用您需要的所有外部包设置一个目标平台--您只需将它们转储到一个目录中,然后将目标平台配置器指向该文件夹。目标平台配置位于Preferences->Plug-in Development->Target Platform下。您可以将目标平台共享为.target文件。拥有一个好的目标平台有助于运行和编译。

要运行您的包,右键单击并选择run as ->OSGi Framework (或debug as)。您可以调整运行时配置中包含哪些包,以及使用哪些参数。例如,您可能想要添加-console。您还可以创建一个用于导出的应用程序,这将为您提供一个config.ini文件。一旦你有了config.ini,你的捆绑包将在Equinox启动时预安装。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10456468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档