2012-12-15 19 views
3

已經提出javafx classloading和osgi問題的解決方案的一部分是將jfxrt移至Java安裝lib/ext目錄,以便在JVM啓動時加載它。將jfxrt移至lib/ext以獲取OSGI目的

如果這是在Java的私有安裝中完成的,則javafx類在設計時可用,但在安裝javafx軟件包時在運行時找不到。

有沒有可能使這個工作?

我在eclipse中使用felix和bndtools作爲Ubuntu 12.04上的開發環境。

回答

3

首先,使用javafx包的軟件包必須使用Import-Package導入它們。

接下來,您需要獲取系統包以導出包。默認情況下,系統包僅導出標準JRE包和OSGi框架包;你可以通過設置屬性org.osgi.framework.system.packages.extra來擴展它。由於使用Bndtools(好!),你可以設置如下屬性:

-runsystempackages: javafx.foo,javafx.bar... 
+0

使用bndtools,輸入包裹的詳細信息是如何輸入的? – paulf

+0

如果它們在源代碼中輸入並且運行解決方案,則運行選項卡中的所有細節都會消失。唯一的其他選擇似乎是在運行需求中添加一個bundle,以及jfxrt jar是如何完成的? – paulf

+0

根據您在代碼中實際使用的包,導入包語句會自動添加到包中。即如果你在代碼中使用'org.foo'包,bnd會將'org.foo'添加到'Import-Package'中。你不應該手動編寫'Import-Package'。 –

1

我最近公佈的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)。