web-dev-qa-db-ja.com

JDK 11+でJavaFXアプリケーションを実行する

Oracleの発表を理解している場合、JavaFXはJDK 11以降のJDKに含まれず、OpenJFXとしてのみ利用可能になります。

JavaFXアプリケーションをJDK 11+で実行できるようにするには、ソフトウェア開発者としてどのような手順を実行する必要がありますか?良い区画はありますか? OpenJDKはGradle経由で利用できますか?

16
Hannes

JavaFX 11はMaven Centralから利用できるようになるため、Mavenを使用して、他の通常の依存関係としてプロジェクトに含めることができます。

<dependencies>
    <dependency>
        <groupId>javafx</groupId>
        <artifactId>javafx.controls</artifactId>
        <version>11.0.0</version>
    </dependency>
</dependencies>

またはGradle:

dependencies {
    compile 'javafx:javafx.controls:11.0.0'
}

これまで(2018年6月)、これは progress で機能しますが、JDK 11 release の時点で準備ができているはずです。

現時点では、発表されたように here からJavaFXスタンドアロンSDKの初期リリースをダウンロードできます 最近(2018年5月)

いずれの場合でも、OpenJFXをビルドする必要もOpenJDKも必要としないことに注意してください。

javafx.base.jarjavafx.controls.jarなどのさまざまなモジュールと、プラットフォームに必要なネイティブライブラリを備えた多数のjarがあります。

here から取得できるOpenJDK 10または11 EAビルドでテストできます。

サンプル

JavaFX Applicationクラスがある場合:

public class JavaFX11 extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Scene scene = new Scene(new StackPane(new Label("JavaFX 11")), 300, 200);
        stage.setScene(scene);
        stage.show();
    }
}

コンパイルできます:

<path.to>/jdk-11.jdk/Contents/Home/bin/javac --module-path <path.to>/javafx-sdk-11/lib/ --add-modules=javafx.controls -d class/ src/<package.name>/JavaFX11.Java

そしてそれを実行します:

cd class
<path.to>/jdk-11.jdk/Contents/Home/bin/Java --module-path <path.to>/javafx-sdk-11/lib/ --add-modules=javafx.controls <package.name>.JavaFX11

JavaFX 11

14
José Pereda