Linux Mint Java и JavaFX - PullRequest
       11

Linux Mint Java и JavaFX

2 голосов
/ 25 июня 2019

Я использую Linux Mint 19.1 и установил среду выполнения OpenJDK. У меня не установлено eclipse, и этот вопрос , который не дает достаточных подробностей, чтобы прояснить, что же на самом деле представляет собой вопрос OP, кажется не особенно актуальным, несмотря на название.

> java --version
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

После установки Java я также установил javafx, используя информацию, найденную на Ask Ubuntu . apt сообщает следующее:

> sudo apt install openjdk-11-jdk openjfx
...
  openjdk-11-jdk is already the newest version (11.0.3+7-1ubuntu2~18.04.1).
  openjfx is already the newest version (11.0.2+1-1~18.04.2).

Проблема, с которой я столкнулся сейчас, заключается в том, что строка import javafx; приводит к следующей ошибке:

> java CheckJavaFX.java
CheckJavaFX.java:1: error: package javafx.application does not exist
import javafx.application.Application;
                     ^
1 error
error: compilation failed

Как мне решить проблему?

1 Ответ

1 голос
/ 03 июля 2019

Исходя из того, что вы сделали:

sudo apt install openjdk-11-jdk openjfx

Вы установили две разные вещи:

  • С одной стороны, openjdk-11-jdk устанавливает последнюю версию JDK 11.0.3, на основе этой детализации .

  • С другой стороны, openjfx устанавливает JavaFX 11.0.2 в соответствии с this .

Если вы проверяете последнее, вы просто загружаете JavaFX SDK (jar-файлы JavaFX и нативные библиотеки) в указанное место, но не связываете его с JDK.

Это объясняет ошибку, которую вы получаете, поскольку JDK не содержит ни одного модуля JavaFX:

Ошибка: пакет javafx.application не существует

Даже если вы попытаетесь выполнить «ручное слияние», скопировав эти файлы в папку JDK, это тоже не сработает.

Чтобы использовать JavaFX 11+ непосредственно из SDK, необходимо добавить файлы jar в путь к модулю, как описано в документации по https://openjfx.io/openjfx-docs/.

В качестве альтернативы выможет использовать инструменты сборки Maven или Gradle и плагины JavaFX, для которых не требуется SDK, и будет использовать Maven Central для извлечения модулей JavaFX.

Наконец, если вы все-таки хотите использовать JavaFX в комплекте с JDK(без указания пути к модулю), вы можете либо загрузить другой дистрибутив, который его объединяет (их там несколько), либо вы можете «объединить» JDK и JavaFX SDK самостоятельно, чтобы создать собственный образ, который объединяет оба, какобъяснено здесь: https://openjfx.io/openjfx-docs/#modular, раздел Custom JDK + образ JavaFX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...