Form Terminal에서 .jar 파일을 실행하려고 하면 다음과 같은 메시지가 나타납니다.
$ java -jar ./RemoteDroidServer/RemoteDroidServer.jar
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at AppFrame.<init>(AppFrame.java:42)
at RemoteDroidServer.main(RemoteDroidServer.java:16)
$
LX 데스크탑 환경의 Devian에서는 동일한 파일이 문제 없이 실행됩니다.
$ java -jar ./RemoteDroidServer/RemoteDroidServer.jar
Linux
시스템 메시지
$ uname -a
Linux fedora 5.5.10-200.fc31.x86_64 #1 SMP Wed Mar 18 14:21:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
설치된 관련 패키지
# rpm -qa | grep -a "jdk"
java-1.8.0-openjdk-headless-1.8.0.242.b08-0.fc31.x86_64
copy-jdk-configs-3.7-4.fc31.noarch
java-latest-openjdk-13.0.2.8-1.rolling.fc31.x86_64
java-11-openjdk-headless-11.0.6.10-0.fc31.x86_64
java-11-openjdk-11.0.6.10-0.fc31.x86_64
java-latest-openjdk-headless-13.0.2.8-1.rolling.fc31.x86_64
# rpm -qa | grep -a "java"
java-1.8.0-openjdk-headless-1.8.0.242.b08-0.fc31.x86_64
javapackages-filesystem-5.3.0-6.fc31.noarch
abrt-java-connector-1.1.4-1.fc31.x86_64
java-latest-openjdk-13.0.2.8-1.rolling.fc31.x86_64
tzdata-java-2019c-2.fc31.noarch
java-11-openjdk-headless-11.0.6.10-0.fc31.x86_64
java-11-openjdk-11.0.6.10-0.fc31.x86_64
java-latest-openjdk-headless-13.0.2.8-1.rolling.fc31.x86_64
GitHub 및 GoogleCode의 RemoteDroidServer:
https://github.com/alrusdi/remotedroid/tree/master/RemoteDroidServer/src
https://github.com/attilla/remotedroid/tree/master/RemoteDroidServer
https://code.google.com/archive/p/remotedroid/
댓글을 기반으로 업데이트
# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
# cd RemoteDroidServer/ && java -jar RemoteDroidServer.jar
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at AppFrame.<init>(AppFrame.java:42)
at RemoteDroidServer.main(RemoteDroidServer.java:16)
최신 업데이트
다른 이유로 KDE-Plasma를 사용해보기로 결정했는데 놀랍게도,.jar 프로그램은 이 DE에 적합합니다!
답변1
또한 Mobian-LXDE 시스템의 AWT 라이브러리에서도 동일한 문제가 발생했습니다(https://wiki.mobian-project.org/doku.php?id=desktopenvironments#lxde). 해결책은 default-jre
패키지를 설치하는 것만큼 간단합니다.
크레딧은 다음으로 이전됩니다.
https://stackoverflow.com/questions/5241850/running-java-gui-applications-through-a-linux-terminal/5242043#5242043
나는 아직 fedora-GNOME에서 테스트할 기회가 없었습니다.
고쳐 쓰다
문제는 dnf update
동시에 내 fedora-GNOME에서 완전히 사라진 것 같거나 두 데스크탑 환경을 통해 설치/업데이트된 KDE-Plasma-5 관련 패키지로 해결되었습니다.