dpkg-query -L openjfx의 출력은 무엇입니까?

dpkg-query -L openjfx의 출력은 무엇입니까?

나는 openjfx를 실행하는 데 어려움을 겪고 있으며 절망적입니다. Linux와 Java에서 문제를 해결할 수 있다고 생각했지만 이렇게 오랫동안 정체된 적은 없었습니다.

Linux와 마찬가지로 많은 지침이 있지만 모두 상충되고 복잡합니다. Stackexchange 네트워크의 여러 사이트에서 받는 모든 오류 메시지에는 점수가 낮은 질문이 많이 포함되어 있습니다. 각 질문에는 간단하고 불완전하며 내 질문과 모호하게 관련이 있는 상충되고 점수가 낮은 답변이 많이 있었습니다. 그러면 질문의 절반은 실제로는 답변되지 않았는데도 "답변"을 받았기 때문에 닫힐 것입니다. openjdk 11과 함께 openjfx 11을 사용하려고 하는데 오류 하나를 해결하면 또 다른 오류만 발생할 수 있습니다.

Stack Exchange에는 구체적인 질문이 필요하므로 내 질문은 다음과 같습니다.아래에는 dpkg-query -L openjfx의 출력이 나와 있습니다. 이렇게 되어야 할까요?

xubuntu 18.04.3 LTS를 별도로 새로 설치하고 따랐습니다.이 단계하지만 행운은 없습니다. 그런 다음 다음을 시도합니다.이것. 내가 이해할 수 없는 내용으로 가득 차 있지만 관련 없는 Google 검색결과를 제공합니다.

나는 달리려고 노력하고있다.이 코드. 실행 중인 구성의 --module-path /usr/lib/jvm/java-8-openjdk-amd64/lib/ --add-modules javafx.controls가상 머신 매개변수에 이 항목이 있습니다. 어디서 가져온 것인지 기억이 나지 않습니다. 나는 현재 이것을 얻습니다 :

Unrecognized option: --module-path
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

이것은 사람들이 문제 해결을 위해 사용하는 경향이 있는 dpkg 출력입니다.

$ dpkg-query -L openjfx
/.
/usr
/usr/bin
/usr/lib
/usr/lib/jvm
/usr/lib/jvm/java-8-openjdk-amd64
/usr/lib/jvm/java-8-openjdk-amd64/bin
/usr/lib/jvm/java-8-openjdk-amd64/bin/javafxpackager
/usr/lib/jvm/java-8-openjdk-amd64/bin/javapackager
/usr/lib/jvm/java-8-openjdk-amd64/jre
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext
/usr/lib/jvm/java-8-openjdk-amd64/lib
/usr/lib/jvm/java-8-openjdk-amd64/man
/usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8
/usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1
/usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1/javafxpackager.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/man/ja_JP.UTF-8/man1/javapackager.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/man/man1
/usr/lib/jvm/java-8-openjdk-amd64/man/man1/javafxpackager.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/man/man1/javapackager.1.gz
/usr/share
/usr/share/doc
/usr/share/doc/openjfx
/usr/share/doc/openjfx/TODO.Debian
/usr/share/doc/openjfx/changelog.Debian.gz
/usr/share/doc/openjfx/copyright
/usr/share/man
/usr/share/man/man1
/usr/bin/javafxpackager
/usr/bin/javapackager
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/javafx.properties
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfxswt.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/ant-javafx.jar
/usr/lib/jvm/java-8-openjdk-amd64/lib/javafx-mx.jar
/usr/share/man/man1/javafxpackager.1.gz
/usr/share/man/man1/javapackager.1.gz

위에 더 있으면 안되나요?이와 같이? openjfx 8 이상인지 여부에 관계없이 javafx.controls와 같은 항목이 나열되어야 한다고 생각합니다.

이것은 사람들이 나와 같은 질문을 입력하는 경향이 있는 또 다른 명령입니다.

$ java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

답변1

나는 또한 dpkg-query -L openjfx할 수 있기를 바랍니다.패키지에 포함된 파일 나열오직.

하지만 저는 귀하의 질문에 대답하고 싶지 않고 문제 해결에 도움을 드리고 싶습니다. Java 9에 도입된 모듈 개념을 Java 8과 혼합하려는 것 같습니다. Ubuntu 18.04에서 사용 가능한 Java 11을 사용하는 것이 좋습니다. javafx-sdk를 수동으로 다운로드하세요.

내 시스템에서 실행되는 예로 다음 스크립트를 고려하십시오.

#!/bin/bash
wget --no-clobber -O javafx-sdk.zip https://gluonhq.com/download/javafx-11-0-2-sdk-linux/
unzip -n javafx-sdk.zip
mkdir -p helloworld
cat > helloworld/HelloWorld.java <<EOF
package helloworld;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}
EOF
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac --module-path javafx-sdk-*/lib --add-modules javafx.controls helloworld/HelloWorld.java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java --module-path javafx-sdk-*/lib --add-modules javafx.controls helloworld.HelloWorld

하지만 "그렇게 오랫동안 '모든 것이 열려 있다'고 주장한 것은 실수였다"는 귀하의 의견은 이해가 되지 않습니다.

관련 정보