[英]Installing TornadoFX OSGi bundle fails on Apache Felix
我通過遵循此toturial開發基於OSGi的TornadoFX桌面應用程序。 在開始編碼之前,我想准備OSGi環境。 為此,我安裝了Apache Felix 5.6.10和必需的捆綁軟件。 Felix和所有必需的捆綁軟件都可以正常工作,如下所示( lb
命令的輸出):
ID|State |Level|Name
0|Active | 0|System Bundle (5.6.10)|5.6.10
1|Active | 1|Apache Commons Logging (1.2.0)|1.2.0
2|Active | 1|Apache Apache HttpClient OSGi bundle (4.5.5)|4.5.5
3|Active | 1|Apache Apache HttpCore OSGi bundle (4.4.9)|4.4.9
4|Active | 1|jansi (1.16.0)|1.16.0
5|Resolved | 1|JavaFX 8 OSGi extension bundle (8.0.1)|8.0.1
7|Active | 1|JLine Bundle (3.5.1)|3.5.1
8|Active | 1|kotlin-osgi-bundle (1.2.31)|1.2.31
9|Active | 1|Apache Felix Bundle Repository (2.0.10)|2.0.10
10|Active | 1|Apache Felix Configuration Admin Service (1.8.16)|1.8.16
11|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
12|Active | 1|Apache Felix Gogo JLine Shell (1.0.10)|1.0.10
13|Active | 1|Apache Felix Gogo Runtime (1.0.10)|1.0.10
18|Active | 1|Apache Felix Gogo Shell (1.0.0)|1.0.0
22|Active | 1|JSR 353 (JSON Processing) Default Provider (1.0.0)|1.0.0
但是,我無法啟動TornadoFX捆綁包! 我安裝tornadofx-1.7.15.jar
使用install tornadofx-1.7.15.jar
,這是確定的,但是當我試圖start
它,下面的異常被拋出:
我在命令行上使用java -jar bin/felix.jar
啟動Felix。 所有感興趣的包都位於Felix根文件夾下的bundle
文件夾中。 另外,我正在嘗試使其在IntelliJ下工作,但這可以是一個獨立線程。
org.osgi.framework.BundleException: Unable to resolve no.tornado.tornadofx [26](R 26.0):
missing requirement [no.tornado.tornadofx [26](R 26.0)] osgi.wiring.package; (osgi.wiring.package=com.sun.glass.ui) Unresolved requirements:
[[no.tornado.tornadofx [26](R 26.0)] osgi.wiring.package; (osgi.wiring.package=com.sun.glass.ui)]
現在的問題是,我該如何使其工作? 我還應該安裝其他捆綁軟件嗎? com.sun.glass.ui
是什么,以及如何將其添加到包或類路徑中?
該錯誤消息表示軟件包no.tornado.tornadofx
導入了軟件包com.sun.glass.ui
,但是您沒有安裝用於導出該軟件包的軟件包。
該軟件包作為某些JDK的一部分提供,但是OSGi默認不導出,因為它不是Java SE標准的一部分。 假設您的JDK包含它,則可以通過設置啟動屬性從系統捆綁包中導出:
org.osgi.framework.system.packages.extra=com.sun.glass.ui
您尚未確切說明如何啟動Felix,因此我無法提供有關如何設置此屬性的具體細節。 如果您有困難,請編輯問題以提供更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.