it-swarm.com.de

Ausnahme auf dem Desktop [sic!] Sun.awt.X11GraphicsEnvironment

Ich versuche, verschiedene Java-Swing-Programme auszuführen, die früher ausgeführt wurden, aber ich kann sie nicht über die Befehlszeile starten, ohne den folgenden Fehler zu erhalten:

Java GuessGame
Exception in thread "main" Java.lang.NoClassDefFoundError: Could not initialize class Sun.awt.X11GraphicsEnvironment
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:186)
at Java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.Java:82)
at Sun.awt.X11.XToolkit.<clinit>(XToolkit.Java:112)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:186)
at Java.awt.Toolkit$2.run(Toolkit.Java:849)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.awt.Toolkit.getDefaultToolkit(Toolkit.Java:841)
at Sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(SwingUtilities2.Java:121)
at javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.Java:1564)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.Java:147)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.Java:1599)
at javax.swing.UIManager.setLookAndFeel(UIManager.Java:530)
at javax.swing.UIManager.setLookAndFeel(UIManager.Java:570)
at javax.swing.UIManager.initializeDefaultLAF(UIManager.Java:1320)
at javax.swing.UIManager.initialize(UIManager.Java:1407)
at javax.swing.UIManager.maybeInitialize(UIManager.Java:1395)
at javax.swing.UIManager.getDefaults(UIManager.Java:644)
at javax.swing.UIManager.getString(UIManager.Java:790)
at javax.swing.UIManager.getString(UIManager.Java:807)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.Java:476)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.Java:442)
at IO.input(GuessGame.Java:10)
at Player.createPlayer(GuessGame.Java:26)
at GuessGame.init(GuessGame.Java:52)
at GuessGame.main(GuessGame.Java:85)

Ich zeige den Quellcode nicht, da er früher ausgeführt wurde, sowie ein Dutzend anderer Programme und nicht geändert wurde.

Möglicherweise suchen Sie bei Google nach der Fehlermeldung und finden den Rat, Java im kopflosen Modus zu starten. Dies trifft hier nicht zu, da dort die Idee ist, Grafikmaterial auf einem Server zu erstellen, möglicherweise ein Diagramm zu erstellen oder eine Grafik zu konvertieren, für die normalerweise eine Anzeige erforderlich ist. Dann können Sie 'headless' angeben, da auf dem Server nichts angezeigt wird. Hier ist das Gegenteil der Fall: Ich möchte, dass mein Frame angezeigt wird, und ich habe ein DISPLAY =: 0.0, in dem mein xterm (z. B. xfce4) ausgeführt wird. Ich kann sogar Ecliplse aus dem Menü starten.

Ebenso passt der Rat unset DISPLAY aus dem gleichen Grund nicht zu mir. Ich brauche um das Display zu benutzen, und es ist aktiv und reagiert - ich benutze Firefox gerade auf diesem Rechner.

echo $DISPLAY
:0.0

Der Versuch, von einer speziellen Eingabe wie der Verve-Comamndline aus zu starten, funktioniert ebenfalls nicht.

Das ist mir ein Rätsel. Xorg.0.log zeigt auch nichts Interessantes.

2
user unknown

Ich erinnere mich nicht, dass ich OpenJDK auf diesem Computer aktiviert hatte und kürzlich darauf umgestiegen bin.

Nach steaberts Kommentar fand ich die Lösung sehr schnell:

update-Java-alternatives -l
Java-1.5.0-Sun 53 /usr/lib/jvm/Java-1.5.0-Sun
Java-6-openjdk 1061 /usr/lib/jvm/Java-6-openjdk
Java-6-Sun 63 /usr/lib/jvm/Java-6-Sun

^ Dies sind die Installationen

Sudo update-Java-alternatives -s Java-6-Sun

^ wechselte zu suns Java (früher bekannt als Oracle :))

und: Bingo: Keine Fehlermeldung mehr, Programm läuft.

Wenn jemand eine Lösung für OpenJDK hat: Gern geschehen. Aber ich bin nicht mehr so ​​interessiert und würde nicht stundenlang Tests damit machen. :)

Aber: Du rockst!

2
user unknown

Arbeitete von openjdk für mich:

Geben Sie auf Ihrem Hostcomputer Folgendes ein:

$ xhost local:
2
Danial Behzadi