已經提出javafx classloading和osgi問題的解決方案的一部分是將jfxrt移至Java安裝lib/ext目錄,以便在JVM啓動時加載它。將jfxrt移至lib/ext以獲取OSGI目的
如果這是在Java的私有安裝中完成的,則javafx類在設計時可用,但在安裝javafx軟件包時在運行時找不到。
有沒有可能使這個工作?
我在eclipse中使用felix和bndtools作爲Ubuntu 12.04上的開發環境。
已經提出javafx classloading和osgi問題的解決方案的一部分是將jfxrt移至Java安裝lib/ext目錄,以便在JVM啓動時加載它。將jfxrt移至lib/ext以獲取OSGI目的
如果這是在Java的私有安裝中完成的,則javafx類在設計時可用,但在安裝javafx軟件包時在運行時找不到。
有沒有可能使這個工作?
我在eclipse中使用felix和bndtools作爲Ubuntu 12.04上的開發環境。
首先,使用javafx包的軟件包必須使用Import-Package
導入它們。
接下來,您需要獲取系統包以導出包。默認情況下,系統包僅導出標準JRE包和OSGi框架包;你可以通過設置屬性org.osgi.framework.system.packages.extra
來擴展它。由於使用Bndtools(好!),你可以設置如下屬性:
-runsystempackages: javafx.foo,javafx.bar...
我最近公佈的Drombler FX第一早期Access版本,基於OSGi和Maven模塊化的富客戶端平臺爲JavaFX(POM -第一)。
你可以閱讀更多關於它在這裏: http://puces-blog.blogspot.ch/2012/12/drombler-fx-building-modular-javafx.html
獲取Startet: http://wiki.drombler.org/GettingStarted
生成的輸出如下解釋: http://wiki.drombler.org/GettingStarted#drombler-fx-sample-application-the-binaries-explained
(我沒有動任何的JavaFX JAR)。
使用bndtools,輸入包裹的詳細信息是如何輸入的? – paulf
如果它們在源代碼中輸入並且運行解決方案,則運行選項卡中的所有細節都會消失。唯一的其他選擇似乎是在運行需求中添加一個bundle,以及jfxrt jar是如何完成的? – paulf
根據您在代碼中實際使用的包,導入包語句會自動添加到包中。即如果你在代碼中使用'org.foo'包,bnd會將'org.foo'添加到'Import-Package'中。你不應該手動編寫'Import-Package'。 –