猿问

JRE 1.7 - java版本 - 返回:java / lang / NoClassDef

当运行任何java应用程序,或只是'java'时,jvm失败:


初始化VM 

java / lang / NoClassDefFoundError 期间发生错误:java / lang / Object


这是一个错误答案的列表:


正确的Java主目录(包括/ bin目录)位于全局PATH上


JAVA_HOME设置正确


执行命令java -fullversion有效


$ java -fullversion


./java full version "1.7.0_05-b05"

/ usr / java中的符号链接都指向正确的java安装


我在创建系统时没有安装任何'default'java


java -version 失败......与上面相同的错误


从java安装的目录结构下发出命令也不起作用


对于64位,这是64位java


有任何想法吗?


月关宝盒
浏览 526回答 3
3回答

撒科打诨

此问题源于不正确的Java安装。可能性1注意:此方案仅适用于Java 8及更早版本。从Java 9开始,JRE的结构不同。rt.jar和朋友不再存在,并且不再使用Pack200。Java标准库中包含各种JAR文件,如rt.jar,deploy.jar,jsse.jar,等。当JRE打包之后,这些关键的JAR文件压缩与Pack200和存储rt.pack,deploy.pack,jsse.pack等Java安装应该是其解压缩。如果您遇到此错误,显然没有发生。您需要手动运行JRE 和文件夹中的unpack200所有.pack文件。lib/lib/ext/视窗要解压缩一个.pack文件(例如rt.pack),请运行:"%JAVA_HOME%\bin\unpack200" -r -v rt.pack rt.jar要从.packJRE根运行中递归解压缩所有文件: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要从.packJRE根运行中递归解压缩所有文件:find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;可能性2您以其他方式错误地安装了Java。也许您安装时没有管理员权限,或者试图简单地从安装程序中提取文件。请使用安装程序和/或更多权限重试。或者,如果您不想使用安装程序,请改用.tar.gzJava包。

白衣非少年

对于* nix OS上的Java 8,请转到<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的情况下出现版本问题,请使用unpack200与您正在修复的JRE一起使用的版本问题- 也就是说,从命令行使用../../bin/unpack200(对我来说,扩展为/usr/java/jdk1.8.0_05/bin/unpack200),而不仅仅是unpack200。
随时随地看视频慕课网APP

相关分类

Java
我要回答