Запуск приложения JavaFX с JDK 11+ - PullRequest
0 голосов
/ 13 июня 2018

Если я понимаю объявления Oracle, JavaFX не будет включен в JDK, начиная с JDK 11, и будет доступен только как OpenJFX.

Какие шаги я должен сделать как разработчик программного обеспечения, чтобы мой JavaFX разрешилприложение для запуска с JDK 11+?Есть ли хорошее поступление?Будет ли OpenJDK доступен через Gradle?

1 Ответ

0 голосов
/ 13 июня 2018

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 г.) это работа в прогресс , но она должна быть готова во время выпуска JDK 11 .

ПокаВы можете загрузить раннюю версию автономного SDK JavaFX с здесь , как было объявлено недавно (май 2018) .

Обратите внимание, что в любом случае вам не нужно ни собирать, ни OpenJDK, ни OpenJFX ни в коем случае.

Вы найдете несколько jar с различными модулями, такими как javafx.base.jar или javafx.controls.jar, а также необходимые нативные библиотеки для вашей платформы.

Вы можете протестировать их с помощью сборки OpenJDK 10 или 11 EA, которую можно получить из здесь .

Пример

Если у вас есть класс приложения JavaFX:

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

...