当运行任何Java应用程序或仅运行“ java”时,jvm都会失败:
VM初始化 java / lang / NoClassDefFoundError时发生错误:java / lang / Object
以下是错误答案的列表:
$ java -fullversion ./java full version "1.7.0_05-b05"
有任何想法吗?
此问题源于Java安装不正确。
可能性1 注意:此方案仅适用于Java 8和更低版本。从Java 9开始,JRE的结构有所不同。rt.jar和朋友不再存在,并且不再使用Pack200。
rt.jar
Java标准库中包含各种JAR文件,如rt.jar,deploy.jar,jsse.jar,等。当JRE打包之后,这些关键的JAR文件与压缩Pack200和存储rt.pack,deploy.pack,jsse.pack等Java安装应该是其解压缩。如果你遇到此错误,显然没有发生。
rt.jar,deploy.jar,jsse.jar
rt.pack,deploy.pack,jsse.pack
你需要手动运行JRE 和文件夹中的unpack200所有.pack文件。lib/lib/ext/
.pack
lib/lib/ext/
视窗 要解压缩一个.pack文件(例如rt.pack),请运行:
rt.pack
"%JAVA_HOME%\bin\unpack200" -r -v rt.pack rt.jar
要递归解压缩所有.pack文件,请从JRE根目录运行:
for /r %f in (*.pack) do "%JAVA_HOME%\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"
*nix 要解压缩一个.pack文件(例如rt.pack),请运行:
*nix
/usr/bin/unpack200 -r -v rt.pack rt.jar
find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;
可能性2 你以其他方式错误安装了Java。也许你是在没有管理员权限的情况下安装的,或者只是尝试从安装程序中提取文件。使用安装程序和/或更多特权重试。或者,如果你不想使用安装程序,请改用.tar.gz Java软件包。
.tar.gz