Как установить & amp; запустить java 8 и javafx в Ubuntu 18.04

Я бы хотел установить java 8 и javafx на ubuntu 18.04.

Я установил openjdk-8-jdk, openjfx и openjdk-8-jre через apt, но компиляция приложения hello world не удалась, поскольку javac не смог найти javafx.

$ sudo apt install openjdk-8-jdk openjfx openjdk-8-jre
$ javac -version
javac 1.8.0_191
$ cat App.java
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;

public class App extends Application {
    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        Scene scene = new Scene(pane, 300, 250);

        primaryStage.setTitle("Hello, World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
$ javac App.java
App.java:1: error: package javafx.application does not exist
import javafx.application.*;
^
App.java:2: error: package javafx.stage does not exist
import javafx.stage.*;
^
App.java:3: error: package javafx.scene does not exist
import javafx.scene.*;
^
App.java:4: error: package javafx.scene.layout does not exist
import javafx.scene.layout.*;
^
App.java:6: error: cannot find symbol
public class App extends Application {
...

Я пытался найти javafx как сказано здесь , но его нет в моей системе.

$ ls /usr/lib/jvm/java-8-openjdk-amd64/bin/
appletviewer  java     java-rmi.cgi  jhat   jrunscript  keytool       rmic         servertool  xjc
extcheck      javac    jcmd          jinfo  jsadebugd   native2ascii  rmid         tnameserv
idlj          javadoc  jconsole      jjs    jstack      orbd          rmiregistry  unpack200
jar           javah    jdb           jmap   jstat       pack200       schemagen    wsgen
jarsigner     javap    jdeps         jps    jstatd      policytool    serialver    wsimport

Также, похоже, у меня есть 2 версии java, но я установил их только по указанным выше командам.

$ ls /usr/lib/jvm/
java-1.8.0-openjdk-amd64  java-8-openjdk-amd64
2
задан 25 April 2019 в 03:35

3 ответа

JavaFX по какой-то причине больше не работает в Ubuntu со стандартными пакетами. Об ошибке сообщается здесь на Launchpad.

0
ответ дан 25 April 2019 в 03:35

Значение по умолчанию openjfx пакет на Ubuntu 18.04 не совместимо с OpenJDK 8. Можно использовать более старую версию openjfx пакета. Обратите внимание на то, что это не полностью безопасное решение, потому что Вы не получите обновления для пакета.

sudo apt install \
  openjfx=8u161-b12-1ubuntu2 \
  libopenjfx-java=8u161-b12-1ubuntu2 \
  libopenjfx-jni=8u161-b12-1ubuntu2

Содержат пакет:

sudo apt-mark hold \
  openjfx \
  libopenjfx-java \
  libopenjfx-jni
1
ответ дан 20 November 2019 в 01:17

Этот ответ помог мне:

https://stackoverflow.com/a/60354037/4288043

Удалить любой jdk или jfx, который пришел из репозитория ubuntu (или debian), а затем вместо этого загрузить полный jdk из:

https://bell-sw.com/pages/downloads/

... который включает в себя jfx

0
ответ дан 14 June 2020 в 19:08

Другие вопросы по тегам:

Похожие вопросы: