当运行任何java应用程序时,或者仅仅运行'java',jvm就会失败:
初始化虚拟机时发生
错误
java/lang/NoClassDefFoundError: java/lang/Object
以下是错误答案的列表:
$ java usr ./java完整版"1.7.0_05-b05"
java -version
时未安装任何默认的java错误为above
有什么想法吗?
发布于 2013-01-23 20:51:18
此问题源于Java安装不正确。
可能性1
注意:此方案仅适用于Java8及更早版本。从Java 9开始,JRE的结构有所不同。rt.jar和好友不复存在,Pack200也不再被使用。
Java标准库包含在各种JAR中,如rt.jar
、deploy.jar
、jsse.jar
等。当JRE打包时,这些关键的JAR文件被Pack200压缩并存储为rt.pack
、deploy.pack
、jsse.pack
等。Java安装程序应该解压缩它们。如果你遇到了这个错误,很明显这是没有发生的。
您需要在lib/
和lib/ext/
文件夹中的所有.pack
文件上手动运行unpack200
。
视窗
要解压一个.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
),请运行以下命令:
/usr/bin/unpack200 -r -v rt.pack rt.jar
要递归解压缩所有.pack
文件,请从JRE根目录运行:
find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;
可能性2
您以其他方式错误地安装了Java。也许你是在没有管理员权限的情况下安装的,或者只是试图从安装程序中解压文件。请使用安装程序和/或更多权限重试。或者,如果您不想使用安装程序,请改用.tar.gz
Java包。
发布于 2014-06-16 19:18:38
对于*nix OS上的Java8,请转到<jdk root>/jre/lib
(对于我来说,就是/usr/java/jdk1.8.0_05/jre/lib
)。从该目录中,执行:
../../bin/unpack200 rt.pack rt.jar
../../bin/unpack200 jsse.pack jsse.rar
../../bin/unpack200 charsets.pack charsets.jar
为了防止在安装了其他JRE时出现版本问题,请使用与正在修复的JRE附带的相同的unpack200
-即,在命令行中使用../../bin/unpack200
(对于我来说,这将扩展到/usr/java/jdk1.8.0_05/bin/unpack200
),而不仅仅是unpack200
。
发布于 2012-10-10 16:32:13
似乎对于64位架构,您必须同时安装32位版本和64位版本的jre (与架构无关的文件,因为rt.jar只在32位版本中分发)。
记住,要注意在全局PATH环境变量中包含正确的java可执行文件。
https://stackoverflow.com/questions/11808829
复制相似问题