JavafxをEclipse RCPビューに埋め込む方法
-
28-10-2019 - |
質問
私は単純な日食ビューからJavafx 2を使用しようとしていますが、私は
java.lang.unsatisfiedlinkerror:クラスの無効なURL:bundleresource://435.fwk1827795025/com/sun/glass/utils/nativelibloader.class
JADとのいくつかの調査の後、Nativelibloaderが非常に興味深いチェックを持っていることがわかりました。
if(!classUrlString.startsWith("jar:file:") || classUrlString.indexOf("!") == -1)
throw new UnsatisfiedLinkError((new StringBuilder()).append("Invalid URL for class: ").append(classUrlString).toString());
これは、JavafxをOSGIバンドルから使用できないことを意味しますか?私が間違っていることを証明してください。
解決
Javafxローダーを更新します OSGIとフレンドリー 「ロンバード」リリースが予定されています(これは Javafx 3.0時間枠, 、IE 2013)。それまでは、OSGIバンドルからJavafxで作業する問題に遭遇する可能性があります。他のOSGI関連の問題は、でOSGIを検索することで見つけることができます Javafx Jira (誰でもサインアップして、そこにリストされているバグや問題を表示できます)。 トム・シンドル, 、の作成者 E(FX)クリプス EclipseのJavafxのプラグインは、EclipseにJavafxを統合する経験を持つ最良の接触点です。
他のヒント
Javafx 2.0を使用するEclipse ViewPartを作成およびエクスポートする方法をステップバイステップのチュートリアルをリリースしました。見る http://www.efxclipse.org/trac/wiki/tutorial3
E(FX)Clipseには、このための魔法使いがあります。次をご覧ください:http://www.efxclipse.org/trac/wiki/tutorial2
このHello Worldコードでビューをすばやくテストできます。
public class MyViewPart extends FXViewPart {
@Override
protected Scene createFxScene() {
Button btn = new Button();
btn.setText("Say 'Hello World!'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
return new Scene(root,300,200);
}
@Override
protected void setFxFocus() {}
}
pls。この簡単な手順に従ってください:
Eclipseで「既存のJARアーカイブからのプラグイン」を作成する
- 外部..jre/lib/jfxrt.jar(jdk1.7から)を追加
- ターゲットプラットフォーム「OSGIフレームワーク」をクリックしてください!
- 「unzip」を選択しません。
Meta -INF/MANIFEST.MF]をクリックします - ランタイムタブですべてのパッケージをエクスポートします(「追加」)。
fx_osgi_plugin]を追加する[fx_osgi_plugin]を追加します。各plugin.xmlの[依存関係]タブに必要なプラグインを追加します。
.productで[依存関係]タブで「必要なプラグインを追加」をクリックします。
Java-FXを使用したプラグインは、OSGI Java-FXバージョンを参照しています。