2014-01-13 78 views
0

我正在研究需要包的商業軟件com.sun.rowset.CachedRowSetImpl 我嘗試了很多次導入包但多次不成功,因爲我使用OSGI,這使得導入包非常困難。如何使用com.sun包

我發現原來的源代碼在這裏:

http://www.docjar.com/html/api/com/sun/rowset/CachedRowSetImpl.java.html

一個快速的方式將剛纔複製的代碼,並使用它。但如果我這樣做,我可能會違反許可證,因爲我的應用程序源代碼已關閉。你能給我一些建議,我怎麼能解決這個問題?

+0

對不起的一個例子散步,我沒有得到它:'CachedRowSetImpl'是一類,而不是一個包;並且它包含在'rt.jar'中,你可以在沒有任何OSGI mumbojumbo的情況下使用它? –

+0

如果我只是把com.sun.rowset.CachedRowSetImpl和我的閉源一起放到我的java包中呢?這是否違反許可證? –

+0

我想象一下,在未經許可的情況下複製Oracle的源代碼會違反許可證,但是如果您複製具有不同許可證的OpenJDK版本,則應該沒問題。您可以允許OSGi通過配置更改來使用com.sun程序包。即您必須告訴它從JVM中導出哪個包,並且需要將其添加到列表中。 –

回答

0

當你啓動一個OSGi框架。它將所有基礎系統包作爲框架包的一部分提供給環境。

對此有限制。默認情況下,它不提供Java附帶的任何com.sun。*類,因爲它們不被認爲是「java庫」的一部分。

要將這些類放到OSGi環境中,您只需要使用一個片段包,它將擴展框架包並公開所需的類。

我強烈建議你閱讀菲利克斯Meschberger這個博客帖子誰在這個過程

http://blog.meschberger.ch/2008/10/osgi-bundles-require-classes-from.html