[英]Depending on com.sun.javadoc from tools.jar (Sun JDK) in Eclipse
我們的一個插件需要安裝JDK,而不僅僅是JRE。 我們需要來自tools.jar的com.sun.javadoc和朋友。 我不認為Sun的許可證會允許重新分發tools.jar(如果你已經擁有JDK則不需要)。
Eclipse中似乎也沒有辦法將JDK指定為依賴項。 Eclipse新聞組中的所有答案都表明最終用戶必須首先正確配置他們的Eclipse。
你知道任何一種解決方法, 只是通過使用Eclipse的依賴性機載機制,使這個依賴對我們插件的用戶顯而易見嗎? 看來這個包甚至對清單中的Import-Package
都沒有效,不像com.sun.jdi。
(作為解決方法,目前我們只能在插件激活時警告此庫缺失。)
由於eclipse提供了OSGi環境,您可以參考文章“ 在OSGi中公開引導類路徑 ”,並嘗試使用:
通過指定所需的JDK包,OSGI框架將嘗試加載它們(如果沒有,則會失敗)。
通過指定一個特定於JDK5或JDK6,您甚至可以確保正確的JDK版本。
OSGi規范允許Framework(通過其系統包)使用
org.osgi.framework.system.packages
屬性從其父類加載器導出任何相關的包作為系統包。
由於將托管JDK
重新打包為捆綁包不是一個可行的選項,因此可以使用此設置使系統捆綁包(或ID為0的捆綁包)自行導出這些包。
大多數OSGi實現已經使用此屬性導出所有公共JDK包(基於檢測到的JDK版本)。 以下是來自Java 1.6的Equinox配置文件的片段:
org.osgi.framework.system.packages = \
javax.accessibility,\
javax.activity,\
javax.crypto,\
javax.crypto.interfaces,\
…
org.xml.sax.helpers
使用此屬性,可以添加將由框架加載和提供的額外包,並且可以連接到其他包。
org.osgi.framework.system.packages = \
javax.accessibility,\
javax.activity,\
…
org.xml.sax.helpers, \
special.parent.package
注意:指定Bundle-RequiredExecutionEnvironment
的更簡單的解決方案僅適用於JRE,而不是JDK ...
這種配置需要成為Equinox框架的config.ini的一部分(請參閱Jetty及其config.ini的 此示例 )。
在您的情況下,它將在您的片段的config.ini中聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.