Как запустить приложение Java Swing из оболочки Linux без среды рабочего стола?

У меня есть пример Java-приложения для тестирования. Он использует библиотеку Java Swing. Я пытаюсь запустить его с xserver в оболочке Linux, поэтому я не использую среду рабочего стола.

Обычно вы можете запустить, например. Firefox без проблем, как это:

startx /usr/bin/firefox    

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

{
    System.out.println("This works");
    JOptionPane.showMessageDialog(null, "This should show up");
}

Если я запускаю java -jar app.jar из командной строки, я получаю следующее сообщение об ошибке:

Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.

С startx java -jar app.jar вывод:

Bad command line option "-jar"

person Community    schedule 17.08.2019    source источник
comment
Какая у вас ошибка?   -  person Michiel Leegwater    schedule 17.08.2019
comment
Итак, если я запускаю java -jar app.jar из командной строки, я получаю следующее сообщение об ошибке: Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. At startx java -jar app.jar вывод: bad command line option "-jar".   -  person    schedule 17.08.2019


Ответы (1)


Это должно быть:

startx /usr/bin/java -jar app.jar —-

См. https://askubuntu.com/questions/697978/how-to-pass-a-program-and-its-arguments-to-start или страницу руководства startx.

Редактировать: обновлено на основе ответа @chief654.

person Michiel Leegwater    schedule 17.08.2019
comment
Эй, большое спасибо за ваш ответ. Это не сработало для меня, у меня была та же ошибка. Но это было правильно, я немного исследовал и обнаружил, что иногда вам нужен весь путь. Поэтому мне пришлось написать /usr/bin/java вместо java. Полная команда была startx /usr/bin/java -jar app.jar --. Тогда это сработало для меня, большое спасибо. - person ; 17.08.2019