おそらく、あなたを助けるには少し遅れていますが、私のような誰かがまだそれを行うのに問題がある場合に備えて、OSGi 環境内で JavaFX を有効にする簡単な方法を文書化したいと思います....
問題は、JavaFX が必要なクラスをロードして使用できるようにする必要があることです (JavaFX は JRE の内部構造を使用するため、バンドルが非常に困難になります)。クラスパスをブーストラップ中...
私は専門家ではありませんが、このブログでは、SpringSource の Costin Leau が (JavaFX だけでなく、システム クラスローダーへのフル アクセスを前提とするすべての jar に対して) 3 つの異なる方法でそれを行う方法を説明しています。
http://blog.springsource.org/2009/01/19/exposed-the-boot-classpath-in-osgi/
オプション A を使用することにしました。これは基本的に、OSGi コンテナーの構成ファイルで OSGi 固有のプロパティ (実装に固有のものではありません!) を設定することを意味します。
org.osgi.framework.system.packages.extra =javafx.application;version=0.0.0 ...
私が作成したこの Gist で、プロパティの全体的な値を確認できます。
https://gist.github.com/renatoathaydes/5021107
私は基本的に、JavaFX 2.2 jar がエクスポートできるすべてのパッケージを設定しました (そして、JavaFX jar を Apache Karaf の deploy フォルダーにドロップするだけでこれを見つけました。これにより、自動的にバンドルが作成され、次に生成されたマニフェスト)...ちなみに、Karafによって生成されたバンドル(pax-wrapを使用して実行します)を使用しようとしましたが、JavaFXがクラスをロードしようとする方法が原因で機能しません(表示されません)試行された JavaFX バンドルでは、JavaFX がアクセスしようとするすべての JRE パッケージは言うまでもありません)。
追加したパッケージのすべてが実際に必要なわけではないと思いますが、安全のために、Karaf のラッパーによって生成されたものをすべて残しました。動作するので、正当な理由がない限り変更しません。
jfxrt.jar が JRE lib フォルダーに存在する限り、どのバンドルでも JavaFX を使用できるようになりました。