Исключение на рабочем столе [sic!] Sun.awt.X11GraphicsEnvironment

Я пытаюсь запустить разные программы java-swing, которые раньше запускались, но я не могу запустить их из в командной строке, не получив этой ошибки:

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)

Я не показываю исходный код, потому что он использовался ранее, как и дюжина других программ, и не был изменен.

Вы можете найти в Google сообщение об ошибке и найти совет, как запустить java в режиме без заголовка. Это не применимо здесь, потому что там , идея состоит в том, чтобы делать графические материалы на сервере, возможно, для создания диаграммы или преобразования графики, для чего обычно требуется отображение. Затем вы можете указать «без головы», потому что на сервере ничего не отображается. Здесь все наоборот: я хочу, чтобы отображался мой фрейм, и у меня есть DISPLAY =: 0.0, где работает мой xterm (например, xfce4). Я даже могу запустить затмение из меню.

Похоже, совет отключить DISPLAY мне не подходит по той же причине. Мне нужен , чтобы использовать дисплей, и он работает и быстро реагирует - я использую Firefox прямо сейчас на этой машине.

echo $DISPLAY
:0.0

Попытка запустить специальный ввод, такой как verve-comamndline, тоже не работает.

Для меня это загадка. Xorg.0.log тоже не показывает ничего интересного.

2
задан 11 April 2011 в 16:10

2 ответа

Я не помню, чтобы на этом компьютере был активирован OpenJDK, и я недавно переключился на него.

После комментария Steaberts я нашел решение очень быстро:

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

^ Это установки

sudo update-java-alternatives -s java-6-sun

^ переключился на Sun Java (ранее известный как оракул) :))

и: Bingo: больше никаких сообщений об ошибках, программа запускается.

Если у кого-то есть решение для OpenJDK: пожалуйста. Но я уже не очень заинтересован и не буду тратить на это часы тестов. :)

Однако: ты рок!

0
ответ дан 11 April 2011 в 16:10

Работает на openjdk для меня:

На хост-машине введите:

$ xhost local:
0
ответ дан 11 April 2011 в 16:10

Другие вопросы по тегам:

Похожие вопросы: