У меня есть файл Jar, который я хотел бы запустить на своем сервере. Когда я запускаю с использованием java -jar MyJar.jar я получаю эту ошибку:

No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at sun.awt.X11GraphicsEnvironment.access$200(Unknown Source)
    at sun.awt.X11GraphicsEnvironment$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.X11GraphicsEnvironment.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at java.awt.GraphicsEnvironment.createGE(Unknown Source)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source)
    at java.awt.Window.initGC(Unknown Source)
    at java.awt.Window.init(Unknown Source)
    at java.awt.Window.<init>(Unknown Source)
    at java.awt.Frame.<init>(Unknown Source)
    at javax.swing.JFrame.<init>(Unknown Source)
    at Dots.main(Dots.java:13)

Немного изучив , я нашел различные решения, но ни одно из них не решило мою проблему: export DISPLAY=:0 и xhost + который, к сожалению, возвращает

No protocol specified
xhost:  unable to open display ":0"   

РЕДАКТИРОВАТЬ * Также пробовал java -Djava.awt.headless=true -jar MyJar.jar но я получаю эту ошибку:

Exception in thread "main" java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)
    at java.awt.Window.<init>(Unknown Source)
    at java.awt.Frame.<init>(Unknown Source)
    at javax.swing.JFrame.<init>(Unknown Source)
    at Dots.main(Dots.java:13)

Какие-либо решения?

3 ответа3

0

Вы не перечислили то, что вы исключили, так что насчет:

java -Djava.awt.headless=true -jar MyJar.jar 
0

Вам, вероятно, нужно запустить X-клиент, такой как VNC, на этом дисплее. Вы уже сделали это?

0

Ответом будет просто ssh -Y <server> или ssh -X <server> это включит X11Forwarding, что позволит вам запустить вашу программу. Для меня, однако, опция -X истекает через X11Forwarding после определенного времени, проведенного на сервере. -Y будет держать x11Fowarding постоянным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .