为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

月关宝盒 2019-08-31 11:10:59
当运行任何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'javajava -version 失败......与上面相同的错误从java安装的目录结构下发出命令也不起作用对于64位,这是64位java有任何想法吗?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

此问题源于不正确的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包。


查看完整回答
反对 回复 2019-08-31
?
白衣非少年

TA贡献1155条经验 获得超0个赞

对于* 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。



查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 525 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信