X11 Display Fehlermeldung Java Programm Heldenstarter

Muntermacher

Lt. Commander
Registriert
Sep. 2022
Beiträge
1.125
Hallo zusammen,

ich habe Probleme die "Software" Heldenstarter zu starten. Wer es nicht kennt: https://www.helden-software.de/index.php/download/
Es erscheintfolgende Meldung beim Versuch es in der Konsole
MeinLinux:~/Programme/Heldenstarter$ java -jar helden.jar
java.awt.HeadlessException:
No X11 DISPLAY variable was set,
or no headful library support was found,
but this program performed an operation which requires it,

at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:166)
at java.desktop/java.awt.Window.<init>(Window.java:553)
at java.desktop/java.awt.Frame.<init>(Frame.java:428)
at java.desktop/java.awt.Frame.<init>(Frame.java:393)
at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
at helden.Fehlermeldung.<init>(Unknown Source)
at helden.Helden.<clinit>(Unknown Source)
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set,
or no headful library support was found,
but this program performed an operation which requires it,

at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:166)
at java.desktop/java.awt.Window.<init>(Window.java:553)
at java.desktop/java.awt.Frame.<init>(Frame.java:428)
at java.desktop/java.awt.Frame.<init>(Frame.java:393)
at java.desktop/javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1919)
at java.desktop/javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1995)
at java.desktop/javax.swing.JWindow.<init>(JWindow.java:183)
at java.desktop/javax.swing.JWindow.<init>(JWindow.java:135)
at helden.gui.J.<init>(Unknown Source)
at helden.gui.J.super(Unknown Source)
at helden.Helden.<clinit>(Unknown Source)

Wird es KDE gestartet (öffnen mit OpenJDK Java 11 Runtime passiert einfach nichts

System ist Tuxedo OS
java -version
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

Im Netz fand ich zwar Hinweise, daß kein Display zugeordnet wurde, aber nicht wie ich es lösen kann bzw. warum der Start aus KDE nicht funktioniert. Vielleicht kann mir hier jemand helfen? Danke schon mal.

Edit: ich vergaß zu erwähnen: MinecraftJava über Prism Launcher funktioniert.
 
Zuletzt bearbeitet:
Per Copy übertragen, die Fehlermeldung bleibt.

Kann die Ursache vielleicht auch in dem Teil der Fehlermeldung liegen:
or no headful library support was found,
 
Die neueste Version des Programms ist ja nun auch schon 7 Jahre alt - ich würde zuerst mal eine ältere Java-Version wie z.b. OpenJDK 8 ausprobieren.
Ich glaube, das sollte unter TuxedoOS, welches afaik ja auf Ubuntu basiert, mit sudo apt install openjdk-8-jdk gehen?
 
Probiere ich mal aus. Was das Alter betrifft, unter Windows läuft es auch mit dem aktuellem Java.

Deine Annahme ist korrekt. Ichhab den 8er wie von Dir beschrieben installiert und erneut
Java -jar helden.jar sowie mit Display vorangestellt ausprobiert, aber die Fehlermeldung bleibt. Oder muß ich dann anders starten?
 
Dann würden mir noch zwei potentielle Ursachen einfallen:
  • du hast nicht zufällig openjdk-*-headless installiert, oder?
  • bist du in einer X11-Sitzung oder verwendest du Wayland?
 
Das erstere kann durchaus sein.
Das zweiter müßte laut Screenshot X11 sein.
 

Anhänge

  • 1706371545291.png
    1706371545291.png
    37,6 KB · Aufrufe: 102
Muntermacher schrieb:
Das erstere kann durchaus sein.
Das könnte dann evtl der Grund sein, versuch mal eine nicht-headless-Variante zu installieren.

Was mir auch noch eingefallen ist: hast du nach Installation von openJDK 8 dieses auch zum starten verwendet? Was sagt java --version? Falls da noch die neue Version steht könntest du auch probieren, die bin von java 8 manuell zu nehmen oder per sudo update-alternatives --config java java 8 als default einzustellen.
 
Hier das Ergebnis mit einem Teilerfolg, der Splashscreen des Programms war kurz zu sehen:

$ sudo update-alternatives --config java

Es gibt 3 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).

Auswahl Pfad Priorität Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 automatischer Modus
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manueller Modus
2 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 manueller Modus
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 3
update-alternatives: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java wird verwendet, um /usr/bin/java (java) im manuellen Modus bereitzustellen
$ java -jar helden.jar
Jan 27, 2024 5:29:32 PM helden.gui.ooOO.i:-1 o00000
WARNUNG: Ladezeit: 0.108816947

Hab auch DISPLAY=:0.0 java -jar helden.jar probiert, hier das gleiche Ergebnis.
 
Wenn der Splashscreen kurz zu sehen ist müsste ja eigentlich der Fehler dann ein anderer sein, oder?
 
Erstmal das passende Java nehmen. Auf der Seite steht was dazu.
Ergänzung ()

Was sagt
Code:
java --version
?
 
  • Gefällt mir
Reaktionen: genodeftest
@oicfar
Da erhalte ich
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (build 1.8.0_392-8u392-ga-1~22.04-b08)
OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)
Auf der Seite finde ich diesen Hinweis:
Für die Nutzung der Software benötigst du mindestens Java 7. OpenJDK 8, das oftmals unter Debian und Ubuntu installiert wird, hat einen Fehler und ist im Moment nicht nutzbar.
Installiert sind:
$ update-alternatives --config java
Es gibt 3 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).

Auswahl Pfad Priorität Status
------------------------------------------------------------
0 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 automatischer Modus
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manueller Modus
2 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 manueller Modus
* 3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manueller Modus
Demnach also das verkehrte, weil openjdk, korrekt?
Wie kann ich Java 7 installieren? Kann ich im Nachgang auch irgendwie definieren, daß nur Helden.jar mit Java7 gestartet werden soll, der Rest aber mit neuerem Java(SDK)
 
Also ich konnte das helden.jar unter Windows mit
Code:
openjdk version "1.8.0_402"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_402-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.402-b06, mixed mode)
starten.
1706380353124.png

Ergänzung ()

Und unter Kali Linux geht es auch mit
Code:
$ java --version                       
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk 17.0.10 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Debian-1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Debian-1, mixed mode, sharing)
 
So, hat jetzt auch geklappt, auch wenn ich es nicht verstehe:
$ sudo update-alternatives --config java
Es gibt 3 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).

Auswahl Pfad Priorität Status
------------------------------------------------------------
0 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 automatischer Modus
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manueller Modus
* 2 /usr/lib/jvm/java-19-openjdk-amd64/bin/java 1911 manueller Modus
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manueller Modus
Optionen 0, 2, 3 klappten nicht, 1 aber schon :) Danke euch.
 
  • Gefällt mir
Reaktionen: Termy und knoxxi
Code:
openjdk version "21.0.2" 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-suse-2.1-x8664)
OpenJDK 64-Bit Server VM (build 21.0.2+13-suse-2.1-x8664, mixed mode, sharing)
klappt unter Opensuse auch.

Ich würde die systemweit benutzte Java-Version nicht mit update-alternatives auf eine alte Version umbiegen wollen, da andere Java-Programme durchaus eine neue Version verlangen können, und dann müsstest du das ganze Zeugs wieder zurückbiegen müssen, um das neuere Tool starten zu können.

Ich hatte vor langer Zeit auch mal ein älteres Java-Tool benötigt und die zu verwendende Java-Version über ein Startskript aufgerufen:
Bash:
#!/bin/sh
export PATH="/usr/lib/jvm/java-11-openjdk-amd64/bin/:$PATH"
exec java -jar /home/<benutzername>/bin/helden.jar "$@"
Zeile 2 müsste so für dich passen, Zeile 3 müsstest du na klar anpassen. Abspeichern unter helden.sh und mit chmod +x helden.sh ausführbar machen. Das Skript kannst du auch über den Plasma-Menüeditor einbinden und ein Icon zuweisen.
 
  • Gefällt mir
Reaktionen: Muntermacher
Nimm Java, haben sie gesagt, dann läuft das Kompilat überall.
 
  • Gefällt mir
Reaktionen: DEADBEEF und Termy
@foofoobar meist tut es ja auch. ;)
Ergänzung ()

@Muntermacher prinzipiell empfehle ich die LTS (8, 11, 17 oder 21) Versionen zu nehmen, wenn man sich mit Development nicht beschäftigt.
 
Danke euch allen. Ich brauch Java für,nur ganz wenig, auf Anhieb fallen mir nur Minecraft und eben dieses Tool hier ein.

@rarp
Danke für das shell script, so hatte ich mir auch erhofft aber (noch) keinen Skill dafür entwickelt, aber das startet :)
 
  • Gefällt mir
Reaktionen: Termy und rarp
Muntermacher schrieb:
Danke für das shell script, so hatte ich mir auch erhofft aber (noch) keinen Skill dafür entwickelt, aber das startet :)
Nur zur Sicherheit:
Hast du die systemweite Java-Version wieder zurück auf 19 gestellt und dann getestet?
 
Zurück
Oben