我有一個第三方JAR,我已經轉換爲一個OSGI捆綁使用bnd。我需要調用從我自己的捆綁使用它的代碼看起來是這樣的:OSGI - 捆綁靜態方法調用
ThirdParty.setRegKey(myRegKey);
ThirdParty thirdParty = new ThirdParty();
thirdParty.callMethod();
什麼似乎導致我的問題是第一線 - 靜態方法調用。在OSGI容器之外,使用標準JAR,這可以正常工作。但是,在OSGI內部,我在第3行得到一個錯誤,說明沒有設置註冊密鑰。
這樣的捆綁包的靜態方法調用是否存在任何問題?這幾乎就好像靜態上下文不在捆綁包中共享。
感謝您的澄清。在第三方捆綁包清單中,我有Export-Package:com.thirdparty.package,然後在我的捆綁軟件清單中導入包:com.thirdparty.package。你是這個意思嗎? – William 2009-09-01 08:43:14
示例代碼表明MANIFEST導入和導出是正確的,否則他將無法編譯,並且所述問題是第三行上的運行時失敗。 – SteveD 2009-09-02 08:48:49
@威廉是的。但是,如果你的代碼全部在一個包中,這不應該成爲問題。 – starblue 2009-09-02 19:35:14