Estou tentando instalar um aplicativo Java em minha máquina Linux (Slackware).
Recebi o seguinte erro e não o compreendo.
Você poderia me aconselhar como abordar o problema? Obrigado.
Aqui está o que eu obtenho: (vejo que alguma variável X11 DISPLAY precisa ser definida, mas qual valor devo fornecer e como?)
~$ java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.java:373)
at com.izforge.izpack.installer.GUIInstaller.<init>(G UIInstaller.java:116)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:30
at com.izforge.izpack.installer.Installer.main(Instal ler.java:62)
Respostas:
Se você estiver na tela principal, então
ou se você estiver usando csh ou tcsh
antes de executar seu aplicativo.
Na verdade, estou surpreso que não seja definido automaticamente. Você está tentando iniciar este aplicativo de um terminal não gráfico? Caso contrário, você modificou o .profile, .login, .bashrc ou .cshrc padrão?
Observe que definir o DISPLAY para: 0.0 pressupõe que você está sentado no display principal, como eu disse, ou pelo menos que o display principal está conectado ao seu ID de usuário. Se não estiver conectado ou se for um ID de usuário diferente, isso falhará.
Se você está vindo de outra máquina, e está na tela principal dessa máquina e ela está executando o X, então você pode usar "ssh -X hostname" para se conectar a esse host, e ssh irá encaminhar a tela X de volta . O ssh também irá certificar-se de que a variável de ambiente DISPLAY está definida corretamente (desde que não seja alterada nos vários arquivos de ponto que mencionei acima). Em uma sessão "ssh -X", a variável de ambiente DISPLAY terá um valor como "localhost: 11.0", que irá apontar para o socket que o ssh está tunelando para sua caixa local.
fonte
Você está executando isso em um ambiente X11? Você pode usar uma janela de terminal, mas deve estar dentro do X (após um login gráfico ou executando startx).
Se você já estiver em um ambiente gráfico, tente exportar DISPLAY =: 0 para shells semelhantes a bash (bash, sh, etc) ou setenv DISPLAY: 0 para shells baseados em shell C (csh, tcsh, etc)
Se você se conectou de outra máquina via SSH, use a opção -X para exibir a interface gráfica na máquina em que está (desde que haja um servidor X em execução lá (como xming para windows e seu Linux X padrão servidor).
fonte
export DISPLAY=:0
você deve habilitar o encaminhamento X11 em seu PuTTy
para fazer isso, abra o PuTTy, vá para Connection => SSH => Tunnels e marque a caixa de seleção Enable X11 forwarding
Também sudo para o servidor e exporte a variável abaixo aqui IP é o IP da sua máquina local
fonte
Mais uma coisa que pode ser o problema em um caso semelhante ao descrito - X não é encaminhado e $ DISPLAY não é definido quando o programa 'xauth' não está instalado no lado remoto. Você pode ver que ele procura por ele quando você executa "ssh -Xv ip_address" e, se não for encontrado, falha, o que não é visto a menos que você ative o modo verbose (uma falha IMO). Normalmente você pode encontrar 'xauth' em um pacote com o mesmo nome.
fonte
Muito Fácil, Tive esse mesmo problema então o que fiz foi baixar e instalar um app que ajudasse na exibição e depois consertou o erro.
Baixe este aplicativo xming:
http://sourceforge.net/project/downloading.php ?
Instale e use as configurações neste link:
http://www.geo.mtu.edu/geoschem/docs/putty_install.html ou siga estas etapas:
Instalando / Configurando PuTTy e Xming
Depois de fazer o download do PuTTy e do Xming para o PC, instale de acordo com as respectivas instruções.
Configurando o Xming
Assim que o Xming estiver instalado, execute o aplicativo chamado 'XLaunch' e verifique se as configurações são as seguintes:
Configurando PuTTy
Depois de instalar o PuTTy, clique duas vezes no ícone do PuTTy na área de trabalho e configure conforme mostrado:
Isso mostra a criação de um perfil de login e depois salvá-lo.
salve o perfil e conecte-se remotamente ao servidor para testar.
Felicidades!!!
fonte
Há muitas maneiras de fazer isso. Eu fiz algo abaixo conveniente para mim e sempre funciona bem.
No servidor, o arquivo .Xauthority é gerado e observe que a variável DISPLAY já está definida.
lista $ xauth
$ xauth add
Para testá-lo, digite xclock ou xeyes
Observação : para trocar de usuário, copie o arquivo .Xauthority para o diretório inicial do respectivo usuário e também exporte a variável DISPLAY desse usuário.
fonte
Eu tive o mesmo problema no Ubuntu 14.04.01 quando tentei instalar o JDK 8 e o Netbeans se eu iniciar o script dentro de um terminal Byobu (talvez com telas aconteça o mesmo).
Apenas saia do Byobu e (em um terminal gráfico) execute o script.
fonte
Verificação inicial.
1) Ao exportar o DISPLAY para outra máquina, certifique-se de inserir o comando
xhost +
nessa máquina. Este comando permite a outra máquina exportar seu DISPLAY nesta máquina. Pode haver restrições de segurança, apenas saiba sobre isso. Precisa verificarssh -X MachineIP
não exigiráxhost +
?2) Algumas vezes
JCONSOLE
não mostra todo o seu processo, pois esses processos JVM podem rodar com outro usuário e você está exportando o DISPLAY com outro usuário. então é melhor seguirCD_DIR>sudo ./jconsole
3) No WAS (WEBSPHERE); jconsole não será capaz de conectar seu processo de servidor java, dessa vez vá até o link e tente conectá-lo. Isso funcionou para mim. Pode ser que esta página esteja inicializando algumas variáveis para permitir que o jconsole se conecte a esse servidor.
Console WAS> Servidores de aplicativos> server1> Definição de processo> Java Virtual Machine
Eu enfrentei o mesmo problema com a máquina AIX (onde a interface de linha de comando está disponível apenas, não há UI DISPLAY). Resolvi instalando
Etapa 1: Por meio dessa máquina Windows, conectei-me com a caixa unix onde o console GUI está disponível.
Etapa 2: SSH para a caixa AIX dessa caixa UNIX.
Etapa 3: defina DISPLAY como "export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle"
Etapa 4: Agora, se lançarmos qualquer programa que requeira DISPLAY; ele será lançado nesta caixa UNIX.
Se você instalou o VNC na caixa UNIX onde a exibição está disponível; então o Windows e o NX Client não são necessários. Etapa 1: Use o VNC para se conectar à caixa Unix onde o console GUI está disponível.
Etapa 2: SSH para a caixa AIX dessa caixa UNIX.
Passo 3: defina DISPLAY como "export DISPLAY = UNIXMACHINE: VNCPORT"
Passo 4: Agora, se lançarmos qualquer programa que requeira DISPLAY; ele será lançado nesta caixa UNIX.
OUTRO
Etapa 1: SSH para a caixa AIX dessa caixa UNIX.
Passo 2: defina DISPLAY como "export DISPLAY = UNIXMACHINE: VNCPORT"
Passo 3: Agora se lançarmos qualquer programa que requeira DISPLAY; ele será lançado nesta caixa UNIX.
fonte
Para aqueles que estão tentando fazer com que um aplicativo X Window funcione no Windows a partir do Linux:
O que funcionou para mim foi configurar o servidor xming na minha máquina Windows, definir a opção de encaminhamento X11 no putty quando me conectar ao host linux e colocar meu endereço IP do Windows com a porta de exibição e, em seguida, a variável de exibição com meu endereço IP do Windows: 0.0
Não se esqueça de adicionar o endereço IP dos hosts linux ao arquivo X0.hosts para garantir que o servidor xming aceite o tráfego daquele host. Levei um tempo para descobrir isso.
fonte
Não se esqueça de executar "host +" em sua máquina de exibição "home", e quando você faz o ssh para a máquina, está executando "ssh -x hostname"
fonte