gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:39:35 36 4
gpt4 key购买 nike

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

第二个更具体的问题。有一个 Bootstrap 包应该可以处理所有事情,但是在加载一堆类之后它会减慢速度并且几乎卡在:

...
...
...
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]

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

[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]

因此这不是一个僵局,是什么让它变得如此缓慢?

最佳答案

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

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

关于eclipse - 在 Eclipse 中运行/调试 OSGi 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10456468/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com