2012-05-04 74 views
5

我們的應用程序已遷移到OSGi,但在Eclipse中啓動/調試時遇到問題。這個過程是什麼:OSGi應用程序開發人員希望設置Equinox環境,安裝數百個捆綁包(jar = bundle?),並從控制檯啓動?換句話說,正在推出與「模塊化挑戰」不同的「熱插拔優化」應用程序?在Eclipse中運行/調試OSGi應用程序

次要的,更具體的問題。還有這是應該照顧一切的引導束,但裝載一堆類後它會減慢,並在幾乎掛起:

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

因此,這不是一個僵局,什麼可能會讓它變得如此令人生厭?

回答

4

在Eclipse中啓動和調試應該是相當直接的。這個技巧(在我看來)是認識到你需要的所有Eclipse支持被標記爲'plug-in'而不是'OSGi'。使用所需的所有外部捆綁軟件設置目標平臺 - 您可以將它們轉儲到目錄中,然後將目標平臺配置程序指向該文件夾。目標平臺配置位於Preferences-> Plug-in Development-> Target Platform下。您可以將目標平臺作爲.target文件共享。有一個好的目標平臺有助於運行和編譯。

要運行您的軟件包,請右鍵單擊並選擇Run as - > OSGi Framework(或debug as)。您可以調整運行時配置中包含哪些捆綁包,以及使用哪些參數。例如,您可能想要添加-console。你也可以創建一個導出應用程序,它會給你一個config.ini文件。一旦你有一個config.ini,你的捆綁包將預裝在Equinox啓動。