Estou usando um modelo Raspberry Pi 2 com o Debian como SO. Eu tentei um programa java swing simples que abre um JFrame, e funcionou bem.
Mais tarde, quis usar o Pi sem cabeça, ou seja, sem conectar o monitor, o teclado e o mouse. Então eu conectei a ele usando a porta Ethernet. Eu instalei o servidor VNC apertado no Pi e o cliente de visualizador VNC no meu PC de mesa.
Consegui visualizar e operar a área de trabalho do Pi a partir do meu PC, mas quando tentei executar o mesmo programa de Java, ele saiu exibindo a exceção Java Headless e, às vezes, um erro de autenticação. Depois de pesquisar na Internet, tentei alguns comandos DISPLAY
de exportação, mas não uso.
Eu entendo que preciso definir alguns parâmetros, relacionados ao JRE ou ao sistema operacional.
Abaixo está a pilha
O cliente não está autorizado a conectar-se ao ServerException no thread "main" java.awt.AWTError: Não é possível conectar-se ao servidor de janela X11 usando ': 1.0' como o valor da variável DISPLAY.
em sun.awt.X11GraphicsEnvironment.initDisplay (método nativo)
em sun.awt.X11GraphicsEnvironment.access $ 200 (X11GraphicsEnvironment.java:65)
em sun.awt.X11GraphicsEnvironment $ 1.run (X11GraphicsEnvironment.java:115)
em java.security.AccessController.doPrivileged (método nativo)
em sun.awt.X11GraphicsEnvironment. (X11GraphicsEnvironment.java:74)
em java.lang.Class.forName0 (método nativo)
em java.lang.Class.forName (Class.java:259)
em java.awt.GraphicsEnvironment.createGE (GraphicsEnvironment.java:102)
em java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment (GraphicsEnvironment.java:81)
em java.awt.Window.initGC (Window.java:475)
em java.awt.Window.init (Window.java:495)
em java.awt.Window. (Window.java:537)
em java.awt.Frame. (Frame.java:420)
em javax.swing.JFrame. (JFrame.java:225)
em HelloSwing.main (HelloSwing.java:6)