Подтвердить что ты не робот

Не удалось запустить java-gui-программы с помощью ubuntu

Я изучаю GUI в Java, потому что создал демо-программу:

import java.awt.*;
public class FrameDemo extends Frame {
    public FrameDemo(){
        super("Frame Demo");
        setSize(200, 200);
        setVisible(true);
    }
    public static void main(String args[]){
        new FrameDemo();

    }
}

Он был скомпилирован успешно. Но когда я попытался выполнить программу, я обнаружил следующую ошибку:

Exception in thread "main" java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
    at java.awt.Window.<init>(Window.java:437)
    at java.awt.Frame.<init>(Frame.java:419)
    at FrameDemo.<init>(FrameDemo.java:4)
    at FrameDemo.main(FrameDemo.java:9)

Я использую Xubuntu 10.10 и java -version дает

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

Так что делать?

Еще одна вещь, подобная ошибке, которую я получил, когда я пытался выполнить дхарму java и файл JJSplit jar.

Заранее спасибо

4b9b3361

Ответ 1

Ubuntu имеет возможность установки безголовой Java - это означает отсутствие графических библиотек. Это было не всегда так, но я столкнулся с этим, пытаясь запустить текстовый редактор Java на 10.10 на днях. Для установки JDK, имеющего эти библиотеки, выполните следующую команду:

sudo apt-get install openjdk-6-jdk

EDIT: На самом деле, глядя на мою конфигурацию, вам может понадобиться JRE. Если это произойдет, запустите:

sudo apt-get install openjdk-6-jre

Ответ 2

Я прекратил получать это исключение, когда я установил default-jdk с помощью apt. Я запускаю Ubuntu 14.04, и проблема, похоже, была результатом установки "безголового" Java. Все, что я сделал, это:

sudo apt-get install default-jdk

Надеюсь, что это поможет.

Ответ 3

У меня тоже было OpenJDK на моей машине ubuntu,

$ java -version
java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

Замена openjdk на горячую точку VM работает нормально,

sudo apt-get autoremove openjdk-7-jre-headless

Как установить JDK на Ubuntu (Linux)?

Ответ 4

В моем случае

-Djava.awt.headless=true

был установлен (косвенно с помощью конфигурации maven). Мне пришлось активно использовать

-Djava.awt.headless=false

чтобы переопределить это.

Ответ 5

Проверьте переменные среды XWindow с помощью команды "env".

Ответ 6

Используйте JFrame вместо Frame. И не распространяйтесь на JFrame. Просто напишите класс, у которого есть JFrame propperty с именем gui, который настраивает этот JFrame с доступными методами, потому что это лучше, чем стиль. Выявление здесь неправильного использования ООП.

Ответ 7

Проверьте, какое значение переменной DISPLAY переменной среды. Попробуйте запустить простое приложение X из командной строки. Если это работает, проверьте значение DISPLAY для правильного значения.

Вы можете поэкспериментировать с разными значениями и переменной среды для каждой операции вызова, выполнив в командной строке следующее:

DISPLAY=:0.0 <your-java-executable-here>

Как вы называете свою программу?

Ответ 8

Я бы уточнил с другой реализацией/поставщиком Java. Предпочтительно Oracle/Sun Java: http://www.java.com/en/. Внедрение с открытым исходным кодом, к сожалению, отличается странными способами.

Ответ 9

Вы сидите на самом компьютере Ubuntu или подключены по сети? У вас есть настольный сервер X/Windows, или вы просто подключены через терминал? Ошибка указывает на то, что X/Windows недоступна - для отображения любого графического интерфейса в Linux.

Ответ 10

Эта команда работала для меня.

Sudo dnf install java-1.8.0-openjdk (Fedora)

Sudo apt-get install java-1.8.0-openjdk

Должен работать для Ubuntu.