- Java não roda aplicação
+ Responder ao Tópico
-
Java não roda aplicação
Que a paz esteja com todos...
Instalei o java-6-sun-1.6.0.18 em debian lenny via apt-get install. A instalação decorreu bem e não tive nenhum problema nesta operação. Parabenizo debian.org pela eficiência. Mas...
Tudo funciona -- javac ok, applets ok -- exceto o famoso comando java arquivo.java. Recebo a seguinte mensagem quando tento executar a também famosa HelloWorld.java:
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Obs. O arquivo libjli.so existe mas não é encontrado. Seria o caso de criar um link simbĺico apontando para ele? Mas... Já fiz isto numa instalação anterior e o mesmo erro continua aparecendo. Poderia ser variáveis de ambiente mal setadas? Também já tentei, já fiz de tudo no /etc/profile e não obtive sucesso. Ou será que não estou entendendo corretamente a mensagem de erro? Estou com o java estropiado na minha máquina. Só a jre funciona. Alguém já passou por semelhantes trabalhos?
Preciso de ajuda com esse problema.
Agradecido
Última edição por dofarias; 29-03-2010 às 09:19.
-
Resolvido
Conforme postado anteriormente, após instalar java-6-sun-1.6.0.18 (agora atualizado para java-6-sun-1.6.0.19) em debian lenny via apt-get install tive problemas com o comando java. Toda vez que chamava java obtinha na saída o seguinte erro: java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory... Embora tivesse jre e javac rodando a saída era sempre a mesma quando se tratava de rodar aplicações. Iniciei então uma série de pesquisas visando resolver o problema. Observei que tal erro é largamente encontrado e que as mais variadas e desencontradas opiniões são apresentadas mas, infelizmente, no meu caso nenhuma delas resolveu o problema. Parti então para a observação pura e simples e conseguim resolver a questão.
Observação --1 Tenho jre funcionando, pois consigo visualizar applets;
Observação --2 Tenho javac funcionando, pois compilo;
Observação --3 Por que java não funciona se os demais funcionam?
Concentrei então os meu esforços sobre javac, pois achava que ele seria a solução do meu problema;
Ações:
Abra um terminal:
sigma459@olabor:~$ whereis java
java: /usr/bin/java /etc/java /usr/share/java
Deixei /etc/java /usr/share/java de lado e parti para /usr/bin. Claro que se não tivesse resolvido o problerma verificaria também em /etc/java /usr/share/java
cd /usr/bin
Abri o navegador de arquivos e fui para /usr/ bin
em /usr/bin encontrei um link simbólico chamado javac que apontava para /usr/lib/jvm/java-6-sun/bin/javac (no meu caso, é importante observar)
encontrei também um executável chamado java
Pensei...
E se eu remover esse executável e no seu lugar criar um link simbólico chamado java apontando para o mesmo diretório que o link simbĺico javac aponta? Afinal, pensei, se o javac funciona deve ser por aí o 'x' da questão...
/usr/bin rm java
/usr/bin ln -s /usr/lib/jvm/java-6-sun/bin/java
Foi criado o link simbólico /usr/lib/jvm/java-6-sun/jre/bin/java (não sei porque /jre aparece mas foi assim que a coisa se deu --veja em propriedades)
O resultado:
sigma459@olabor:~$ java -version
java version "1.6.0_19"
Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
Java HotSpot(TM) Server VM (build 16.2-b04, mixed mode)
Espero que possa ajudar alguém com o mesmo problema...
Ps. Não esqueça de adaptar os passos acima ao seu caso.
Última edição por dofarias; 05-04-2011 às 20:19.
-
Re: Java não roda aplicação
Olá sou novo na SO linux, instalei o netgrok e é um aplicativo que necessita do Java, tenho ele instalado via apt-get porém da erro qnd tento usa-lo. Vc poderia me ajudar?
-
Re: Java não roda aplicação
Ola, Macqueen;
Se o erro for:
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Tente o seguinte:
Abra um terminal como root...
1 - Vá para o diretório /usr/bin...
# cd /usr/bin
2 - Remova java... (se você não removê-lo receberá a mensagem de que o arquivo já existe e o link não será criado)
# rm java
3 - Crie o seguinte link simbólico...
# ln -s /usr/lib/jvm/java-6-sun/bin/java java (adapte ao seu caso)
4 - Faça o teste...
O resultado:
sigma459@olabor:~$ java -version (o seu terminal, claro)
java version "1.6.0_19"
Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
Java HotSpot(TM) Server VM (build 16.2-b04, mixed mode)
Em resumo, foi assim que eu resolvi o problema...
Uma dica: acompanhe os movimentos do terminal com o navegador de arquivos aberto - eu costumo colocá-lo do lado direito da tela. Assim você vê o que acontece dentro do diretório...
Qualquer coisa poste aí que estou às ordens do amigo. E nunca desista!
Um abraço
Última edição por dofarias; 06-04-2011 às 14:37.
-
Re: Java não roda aplicação
Só corrigindo, não instalei o netgrok via apt-get, até pq não existe ainda nos repositorios da debian esse aplicativo. Instalei via pacote .tar. Mas qnd digito no terminal: java -jar netgrok20080928.jar, aparece uns erros de java. vou postar aki os erros pra vc analisar melhor ok?
Última edição por Macqueen; 05-04-2011 às 22:26.
-
Re: Java não roda aplicação
Olá, Macqueen;
A idéia central deste post é tratar do erro específico descrito acima, isto é:
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Quando referi-me à instalação pelo apt-get, fazia menção ao modo como instalei o java no meu sistema (#apt-get install sun-java6-jdk...). Então todas as observações e procuras que fiz diziam respeito ao erro do java já citado. Mas, de qualquer forma, estamos à disposição no que for possível para ajudá-lo. Porém, insisto para que o amigo verifique se o java está corretamente configurado no seu sistema através dos testes observados acima. Quer dizer, abra um terminal e execute os comandos a seguir:
1 - $java -version
Na saída deverá aparecer a descrição da versão do java instalado e configurado no seu sistema...
2- $javac -version
Na saída deverá aparecer a descrição da versão do javac instalado e configurado no seu sistema...
3 - $javac
Na saída deve aparecer as características do javac... (uma espécie de listagem...)
Por ora, é só isso. Mas pode postar os erros apresentados para que possamos tentar resolver...
Um abraço
-
Re: Java não roda aplicação
Olá, Macqueen;
Aqui uma instalação do java que funciona:
Após apt-get update...
mon111:/home/fsfarias# apt-get install sun-java6-jdk
Processing triggers for menu ... #########Fim da instalação do java pelo apt-get
mon111:/home/fsfarias# java -version
java version "1.5.0" #########Versão padrão da instalação
gij (GNU libgcj) version 4.3.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
mon111:/home/fsfarias# javac #########Teste javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
-processorpath <path> Specify where to find annotation processors
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
mon111:/home/fsfarias# whereis java ######Localizando o java
java: /usr/bin/java /etc/java /usr/share/java
mon111:/home/fsfarias# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 2011-04-03 10:45 /usr/bin/java -> /etc/alternatives/java
mon111:/home/fsfarias# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 34 2011-04-06 12:36 /etc/alternatives/java -> /usr/lib/jvm/java-gcj/jre/bin/java #####Aqui ele mostra a instalação padrão
mon111:/home/fsfarias# ls -l /usr/java
ls: cannot access /usr/java: No such file or directory #####java instalado não encontrado
mon111:/home/fsfarias# cd /usr
mon111:/usr# ln -s /usr/lib/jvm/java-6-sun-1.6.0.22 java #####criando link simbólico para java
mon111:/usr# ls -l /usr/java
lrwxrwxrwx 1 root root 32 2011-04-06 13:00 /usr/java -> /usr/lib/jvm/java-6-sun-1.6.0.22 ###java instalado encontrado
####Versão padrão da instalação do Debian
mon111:/usr# java -version
java version "1.5.0"
gij (GNU libgcj) version 4.3.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
####Alterando /etc/alternatives
mon111:/usr# cd /etc/alternatives
mon111:/etc/alternatives# rm java
mon111:/etc/alternatives# ln -s /usr/java/bin/java java #####criando link simbólico
####Versão instalada pelo apt-get
mon111:/etc/alternatives# java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)
mon111:/etc/alternatives#
Um abraço
Última edição por dofarias; 06-04-2011 às 14:49.