No X11 DISPLAY Variable was set

OSchr

Mitglied
Hallo,
Wenn ich, auf einem frisch installierten Linux Mint, versuche den Code:
Java:
import java.awt.*;
import javax.swing.*;

public class KlapptNicht extends JFrame {
    public KlapptNicht() {
        super("Hallo");

        var icon = new ImageIcon("logo.jpg");
        var label1 = new JLabel("Viel Erfolg beim", JLabel.CENTER);
        var label3 = new JLabel(icon);

        var c = getContentPane();
        c.setLayout(new FlowLayout());
        c.setBackground(Color.white);
        c.add(label1);
        c.add(label3);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300,250);
        setVisible(true);
    }

    public static void main(String[] args) {
        new KlapptNicht();
    }
}
otmar:~/$ javac GrussMitProgrammfenster.java
otmars:~/$ java GrussMitProgrammfenster

bekomme ich folgende Fehlermeldung:

Code:
Exception in thread "main" 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/javax.swing.JFrame.<init>(JFrame.java:224)
    at GrussMitProgrammfenster.<init>(GrussMitProgrammfenster.java:22)
    at GrussMitProgrammfenster.main(GrussMitProgrammfenster.java:48)

Installiert ist:

otmar:~java -version

openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment (build 21.0.1+12-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 21.0.1+12-Ubuntu-222.04, mixed mode, sharing)

Was fehlt mir hier? Und wie kann ich es beseitigen?

Schon jetzt danke für Hilfe.
 
Mehrere Möglichkeiten sehe ich hier:

a) Evtl. hast Du nur das -headless Paket installiert (also z.B. default-jdk-headless) - dann müsstest Du nur noch das volle Paket installieren (also default-jdk in dem Fall)

b) Wo startest Du denn das Programm? Startest Du es von einem nicht grafischen Display? Oder startest Du es von eine grafischen Oberfläche aus?
Wenn Du es von eine grafischen Oberfläche (Gnome, KDE, ...) startest, sollte das DISPLAY bekannt sein. Ggf. kannst Du probieren, es mit export DISPLAY=:0.0
setzen (bzw. setenv DISPLAY :0.0 bei tcsh und so).
 
Nach Installation der:
sudo dpkg -i jdk-21_linux-x64_bin.deb

steht nun als Version:
java version "21.0.1" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

Die Fehlermeldung hat sich verändert, bringt aber letztendlich keine Besserung:
Java:
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using 'localhost:0.0' as the value of the DISPLAY variable.
    at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:105)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
    at java.desktop/sun.awt.X11GraphicsEnvironment.initStatic(X11GraphicsEnvironment.java:64)
    at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:59)
    at java.desktop/sun.awt.PlatformGraphicsInfo.createGE(PlatformGraphicsInfo.java:37)
    at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:93)
    at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:84)
    at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:106)
    at java.desktop/java.awt.Window.initGC(Window.java:492)
    at java.desktop/java.awt.Window.init(Window.java:512)
    at java.desktop/java.awt.Window.<init>(Window.java:554)
    at java.desktop/java.awt.Frame.<init>(Frame.java:428)
    at java.desktop/javax.swing.JFrame.<init>(JFrame.java:224)
    at GrussMitProgrammfenster.<init>(GrussMitProgrammfenster.java:8)
    at GrussMitProgrammfenster.main(GrussMitProgrammfenster.java:30)

Ich führe das Programm im Terminal aus:
javac test.java
java test
Danke schon mal
 
Was für eine grafische Umgebung nutzt Du? Nutzt Du evtl. Wayland?

Das Problem ist aus meiner Sicht, dass Du keinen X11 Server laufen hast und daher keine X11 Programme ausgeführt werden können.
 
Ganz spannend.
Nach der letzten Installation habe ich noch mal einen Neustart des Laptops gemacht
=> Nun klappt es???
Als $DISPLAY wird mir nun ":0:" angezeigt.
Übrigens setze ich kein Wayland ein.
Als Desktop läuft "Cinnamon".
Wie schon gesagt; neu aufgesetzt.

Danke dir noch mal!
 

Neue Themen


Zurück
Oben