JRE 1.7 - versão java - devoluções: java/lang/NoClassDefFoundFoundError: java/lang/Object
Ao executar qualquer aplicação java, ou apenas 'java' o jvm falha:
Erro ocorrido durante a inicialização do VM java/lang/NoClassDefFoundFoundError: java/lang/Object
Aqui está uma lista de respostas erradas:
-
O directório home Java correcto, incluindo o directório /bin, está no PATH global
-
JAVA_HOME está configurado correctamente
-
Execução dos trabalhos de comando java -fullversion
$ java -fullversion ./java versão completa "1.7.0_05-b05"
-
As ligações simbólicas em /usr/java apontam todas para a instalação correcta do java
-
Não instalei nenhum ' por defeito' java quando criei o sistema
-
A 'jav -versão' falha...o mesmo erro que acima
-
A emissão dos comandos a partir da estrutura do directório da instalação java também não funciona
-
Isto é 64-bit java para um 64-bit
Alguma ideia?
131
3
Este problema deriva de uma instalação Java inadequada.
Possibilidade 1
A biblioteca padrão Java está contida em vários JARs, tais como
rt.jar
,deploy.jar
,jsse.jar
, etc. Quando o JRE é empacotado, estes ficheiros JAR críticos são comprimidos com Pack200 e armazenados comort.pack
,deploy.pack
,jsse.pack
, etc. O instalador Java deve descomprimi-los. Se estiver a experimentar este erro, aparentemente isso não't aconteceu.É necessário executar manualmente
unpack200
em todos os ficheiros.pack
nas pastaslib/
elib/ext/
do JRE's.Janelas
Para desembalar um ficheiro
.pack' (por exemplo
rt.pack'), correr:Para desempacotar recursivamente todos os ficheiros `.pack', a partir do root run do JRE:
*nix
Para desembalar um ficheiro
.pack' (por exemplo
rt.pack'), correr:Para desempacotar recursivamente todos os ficheiros `.pack', a partir do root run do JRE:
Possibilidade 2
Instalou mal Java de outra forma. Talvez tenha instalado sem direitos de administrador, ou tenha tentado simplesmente extrair ficheiros do instalador. Tente novamente com o instalador e/ou mais privilégios. Ou, se não quiser utilizar o instalador, utilize o pacote
.tar.gz
Java.Parece que para uma arquitectura de 64 bits é necessário instalar tanto a versão de 32 bits como a versão de 64 bits do jre (os ficheiros independentes da arquitectura como rt.jar são distribuídos apenas na versão de 32 bits).
Lembre-se então de prestar atenção para incluir o executável java correcto na variável de ambiente global PATH.
Outra resposta poderia ser utilizar o ficheiro tar.gz no caso do Linux. Parece haver algo do género também para a plataforma solaris. Desta forma, todos os ficheiros já estarão no formato esperado e não haverá problemas de desempacotamento' não haverá problemas de desempacotamento.