Al ejecutar cualquier aplicación java, o simplemente 'java', la jvm falla:
Se produjo un error durante la inicialización de VM
java / lang / NoClassDefFoundError: java / lang / Object
Aquí hay una lista de respuestas incorrectas :
El directorio de inicio de Java correcto, incluido el directorio / bin, está en la RUTA global
JAVA_HOME está configurado correctamente
Ejecutar el comando java -fullversion funciona
$ java -fullversion ./java full version "1.7.0_05-b05"
Los enlaces simbólicos en / usr / java apuntan a la instalación correcta de java
No instalé ningún Java 'predeterminado' cuando creé el sistema
java -version
falla ... el mismo error que el anteriorEmitir los comandos desde debajo de la estructura de directorios de la instalación de Java tampoco funciona
Esto es Java de 64 bits para un 64 bits
¿Algunas ideas?
rt.jar
archivo, que se requiereJVM
al momento de la cargaJRE
Respuestas:
Este problema proviene de una instalación incorrecta de Java.
Posibilidad 1
La biblioteca estándar de Java está contenida en diversos frascos, tales como
rt.jar
,deploy.jar
,jsse.jar
, etc. Cuando se empaqueta el JRE, estos archivos JAR críticos se comprimen con Pack200 y se almacenan comort.pack
,deploy.pack
,jsse.pack
, etc. instalador de Java se supone que ellos descomprimir. Si experimenta este error, aparentemente eso no sucedió.Debe ejecutar manualmente
unpack200
todos los.pack
archivos en las carpetaslib/
y JRElib/ext/
.Ventanas
Para descomprimir un
.pack
archivo (por ejemplort.pack
), ejecute:Para descomprimir recursivamente todos los
.pack
archivos, desde la raíz de JRE ejecute:*nada
Para descomprimir un
.pack
archivo (por ejemplort.pack
), ejecute:Para descomprimir recursivamente todos los
.pack
archivos, desde la raíz de JRE ejecute:Posibilidad 2
Desinstaló Java de alguna otra manera. Quizás instaló sin derechos de administrador, o intentó simplemente extraer archivos del instalador. Intente nuevamente con el instalador y / o más privilegios. O, si no desea utilizar el instalador, utilice el
.tar.gz
paquete Java.fuente
for %i in (*.pack) do (..\bin\unpack200 "%i" "%~ni.jar" & del "%i")
(tal vez algún día lo haga un poco más robusto para que no tenga que cambiar manualmente la ruta, pero de nuevo, generalmente solo uso el.gz
lanzamiento de JRE que no los empaqueta. )Para Java 8 en un sistema operativo * nix, vaya a
<jdk root>/jre/lib
(para mí/usr/java/jdk1.8.0_05/jre/lib
). Desde este directorio, ejecute:Para evitar problemas de versión en caso de que tenga otro JRE instalado, use el mismo
unpack200
que viene con el JRE que está arreglando, es decir, desde la línea de comando, use../../bin/unpack200
(para mí, esto se expande a/usr/java/jdk1.8.0_05/bin/unpack200
), no solounpack200
.fuente
"<jdk1.8_root>/lib"
../bin/unpack200 tools.pack tools.jar
en"<jdk1.8_root>/jre/lib/ext"
../../bin/unpack200 jfxrt.pack jfxrt.jar
../../bin/unpack200 localedata.pack localedata.jar
Parece que para una arquitectura de 64 bits tiene que instalar tanto la versión de 32 bits como la versión de 64 bits de jre (los archivos independientes de la arquitectura como rt.jar se distribuyen solo en la versión de 32 bits).
Recuerde entonces prestar atención para incluir el ejecutable java correcto en la variable de entorno PATH global.
fuente
architecture independent files as rt.jar are distributed only in the 32-bin version
?Solución rápida para personas impacientes;) En máquinas con Windows , intente esto: vaya al
C:\Windows\System32
directorio y eliminejava.exe
(o cambie el nombre a algo comojava.exe.old
).Desde al menos 1.6, no debería haber un
java.exe
en el directorio de Windows. Si lo hay, es un remanente de algo.Un poco más de lectura:
¡Estoy realmente sorprendido de que una pregunta de 2012 aún no tenga una respuesta aprobada y realmente he encontrado el mismo problema en 2015 en mi sistema operativo Win 7 de 32 bits!
Entonces, ¿qué pasó?
Básicamente, todo funcionaba bien, descargué la base de datos H2 y cuando intenté comenzar
H2 Console (Command Line)
obtuve:Encontré esta pregunta y pude confirmar los mismos síntomas:
JAVA_HOME está configurado correctamente:
java -version
falla, mientrasjava --fullversion
funciona bien:SOLUCIÓN: ¡ Ve al
C:\Windows\System32
directorio y borra eljava.exe
archivo (en realidad cambié el nombre) !Ahora obtengo:
y
H2 Console (Command Line)
funciona bien también!Los créditos van a la última publicación en este foro: https://bukkit.org/threads/java-lang-noclassdeffounderror-java-lang-object.70450/
fuente
C:\ProgramData\Oracle\Java\javapath
estaban causando el problema. Cambio la variable de entorno PATH y ahora funciona.Descargué el nuevo JDK hoy (1.8.0.73) comenzó
c:> java.exe
y obtuve el infame:Solo quería compartir mi solución de trabajo aquí.
Cuando ingresé a la
jdk\bin
carpeta, Java funcionaría bien, así que sabía que era elPATH
. Me pusePATH
solo\jdk\bin
en CMD para probarlo y funcionó.Entonces, pensé que una de las carpetas en la que
PATH
debía haber tenidojava.exe
estaba causando el conflicto. Al final resultó que eraC:\>ProgramData\Oracle\Java\javapath
que tiene enlaces simbólicos a los ejecutables.java.exe
estaba señalandojre\bin
. El archivo estaba dañado, cuando comencé,\jre\bin\java.exe
exactamente el mismo error. Bingo. Reinstalé JRE y el problema desapareció. Feliz codificación ...fuente
Probablemente le falta un archivo llamado rt.jar en su instalación que tiene el archivo de clase para java.lang.Object. Verifique sus archivos de instalación, etc.
En particular, tenga en cuenta que un intsaller de 64 bits se superpone (o instala "junto a") una instalación de 32 bits existente. En otras palabras, para obtener una instalación de 64 bits que funcione completamente, primero debe ejecutar la instalación de 32 bits, y luego seguir con una instalación de 64 bits si tiene una máquina con capacidad de 64 bits ...
Si, en cambio, solo realiza una instalación de 64 bits, le faltarán ciertos archivos en la instalación y obtendrá errores como el anterior.
fuente
En Windows 10, estaba enfrentando el mismo problema con JRE 1.8 (8u121).
Mecanografía
el indicador cmd vuelve
Todos los otros comandos,
echo %JAVA_HOME%
,echo %JRE_HOME%
,echo %PATH%
,java -fullversion
funcionaba bien.Diríjase a las variables de entorno en el panel de administración del sistema, elimine de PATH el enlace
C:\ProgramData\Oracle\Java\javapath
y asegúrese de haber establecido en PATH el enlaceC:\Program Files\Java Folder\bin
.Después de eso, verifique si
C:\Windows\System32
existe unjava.exe
archivo; si es verdadero, elimine ese archivo.Escribiendo ahora
java -version
funciona bien.fuente
C:\Program Files\Java Folder\bin
. En cambio lo usoC:\Program Files\Java\jdk1.8.0_161\bin
pero no me ayuda de todos modos. No hay archivo java.exe en la carpeta System32Este problema ocurre cuando instala el JDK por
_uncompressing_
él en lugar de_executing_
hacerlo.Por ejemplo:
En el primer escenario, las bibliotecas de tiempo de ejecución, como rt.jar, no se descomprimen automáticamente (por lo tanto, puede encontrar los archivos rt.pack, etc. en lugar de los archivos .jar).
fuente
Tuve el mismo problema recientemente. En mi caso, mi máquina con Windows 7 descargó automáticamente Java y lo agregó
C:\ProgramData\Oracle\Java\javapath
al comienzo de mi variable de entorno de ruta, lo que estropeó mi Java. Una vez que me deshice de eso del camino, funcionó.fuente
si hace "chmod u + rx" en el binario de Java y lo ejecuta, desempaquetará los archivos jar y podrá hacer una versión de Java sin errores de tiempo de ejecución
fuente
No puede instalar solo los 64 bits, primero debe instalar los 32 bits y luego agregar los componentes de 64 bits.
Desde java.com:
fuente
Si instala una versión de 64 bits sin instalar primero 32 bits, este error se producirá a pesar de solucionar todos los demás problemas. Tengo una nueva máquina Dell 10 i7 de 64 bits con Windows 10 Pro que ejecuta Java 8u71. Después de agregar mi% path% y% classpath% a las variables de entorno y probar varias otras soluciones, desinstalar 64 bits, instalar 32 bits y luego reinstalar 64 bits lo reparó.
Algunos de los problemas, como no tener sus archivos descomprimidos, etc., que se han mencionado como posibles causas, pueden seguir causando problemas, pero si no lo hace, las otras soluciones no funcionarán.
fuente
En mi caso, utilizo un Windows 8.1 (instalado jdk1.8.0_77), hice tres cosas:
y voila lo solucionó!
fuente
Me enfrenté a un problema similar y descubrí que el enlace simbólico en los datos del programa (C: \ ProgramData \ Oracle \ Java \ javapath) estaba equivocado. He dado el camino correcto y funcionó.
Los detalles sobre cómo corregir los datos del programa están disponibles aquí
fuente
Otra respuesta podría ser usar el archivo tar.gz en su lugar en el caso de Linux. Parece que hay algo así también para la plataforma solaris. De esta manera, todos los archivos ya estarán en el formato esperado y no habrá problemas de desempaquetado.
fuente
Tengo algún problema en las instalaciones de Linux x86_64 con JDK 1.7.0_40 i586. Descubrí que el problema es que rpm no puede descomprimir archivos jar, como lo menciona Rigg802 (aunque rpm completa el éxito de marcado):
El archivo /lib/ld-linux.so.2 es proporcionado por glibc-2.12-1.107.el6_4.4. i686 que no se encuentra entre rpm deps de jdk rpm.
Oracle JDK rpm también requiere versiones de 32 bits de libgcc-4.4.7-3.el6. i686 para ser instalado
Entonces, la solución es instalar glibc-2.12-1.107.el6_4.4.i686 y libgcc-4.4.7-3.el6.i686 primero.
fuente
Solución rápida que funcionó para mí:
fuente
Encontré que este error ocurrió cuando extraje el archivo .rpm.
Luego eliminé esa carpeta y descargué jdk-7u79-linux-x64.tar.gz para Linux 64 y extraje el contenido de este archivo. También: export JAVA_HOME = / opt / java / jdk1.7.0_79 export JDK_HOME = / opt / java / jdk1.7.0_79 export PATH = $ {JAVA_HOME} / bin
fuente
Simplemente instale el jre nuevamente . Simplemente resolvió mi problema. (El lote de inicio de SonarQube comenzó a dar este error después de instalar jdk)
fuente
Vaya al panel de control, desinstale las cosas relacionadas con java (cierre eclipse si está abierto), luego reinstale java y abra eclipse, limpie los proyectos.
fuente
Acabo de hacer esto en Solaris y me encontré con este problema idéntico donde incluso "java -version" no funciona. Hay una razón por la cual las versiones de 64 bits de la distribución son MUCHO más pequeñas que las de 32 bits. De hecho, es como se indicó anteriormente:
En otras palabras, para obtener una instalación de 64 bits que funcione completamente, primero debe ejecutar la instalación de 32 bits, y luego seguir con una instalación de 64 bits si tiene una máquina con capacidad de 64 bits ...
Así que ejecuté el instalador para 32 bits:
Luego ejecuté el instalador para el 64-bit:
Esto me da varios ejecutables de Java para elegir:
Los sparcv9 java son las versiones de 64 bits y funcionan con "-version" cuando se instalan junto con el JDK de 32 bits.
-Dan
fuente
/usr/java
lo que claramente es un sistema operativo Linux / Unix como SO. Tiene razón en que la instalación de Solaris en Java fue diferente de cualquier otro sistema operativo hasta Java8. Básicamente, primero tenía que instalar el paquete de 32 bits y luego el paquete de 64 bits encima . Pero eso es todo en el pasado ahora que Java de 32 bits ya no es compatible con Solaris, similar a lo que dice Mac OS X.En la ventana 10 ya hay una ruta presente en env ya
C:\>ProgramData\Oracle\Java\javapath
que contiene enlaces simbólicos a los ejecutables.Cuando instalo una nueva versión y la elimino de mi variable de entorno, mi proyecto completo comienza a mostrarla.
Estoy usando oxígeno eclipse en la ventana 10
Para resolverlo: -
Simplemente elimino la ruta
C:\>ProgramData\Oracle\Java\javapath
de la variable de entorno y agregué un nuevo entorno como JAVA_HOME y% JAVA_HOME% / bin en la rutaReinstalo el jdk con privilegios de administrador (elimine la carpeta JRE anterior)
Mi problema está resuelto :) Espero que te ayude :)
fuente
Esto solucionó el problema que tenía en CentOS
vea también la configuración de JAVA_HOME y CLASSPATH en CentOS 6
fuente
Entonces, seguí intentándolo todo y finalmente parece que reinstalar Java después de desinstalarlo solucionó mi problema.
fuente
si hay algún problema para la versión de instalación de JAVA
C: \ Donde JAVA
le dará la ubicación de Java recogiendo. Si tiene otra ruta que no sea su instalación, elimine esos archivos o cámbiele el nombre (puede ser como _backup). Obtendrá la versión adecuada del archivo Java.
fuente
Me enfrenté al mismo problema, he instalado dos versiones de Java, por lo tanto, causó este problema. para confirmar esto, vaya y haga clic en el icono de Java en el panel de control si no se abre, entonces el problema es el mismo, simplemente vaya y desinstale una versión. pedazo de pastel Gracias.
fuente
Estaba enfrentando el mismo problema: se produjo un error durante la inicialización de VM java / lang / NoClassDefFoundError: java / lang / Object
Siga los pasos a continuación para resolver el problema:
Paso 1. Ir a C: \ Archivos de programa \ y buscar la carpeta Java.
Paso 2. Eliminar la carpeta C: \ Archivos de programa \ Java.
Paso 3. Descargue el nuevo Jdk para su versión 32 bit / 64 bit de http://www.oracle.com/technetwork/java/javase/downloads/index.html
Paso 4. Instalar JDK
Paso 5: Ahora configure JAVA_HOME en "C: \ Archivos de programa \ Java \ jdk1.8.0_91"
Paso 6: Abra el símbolo del sistema e ingrese java -version.
Funciona.
fuente