首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JRE 1.7 - java版本-返回: java/lang/NoClassDefFoundError: java/lang/Object

JRE 1.7 - java版本-返回: java/lang/NoClassDefFoundError: java/lang/Object
EN

Stack Overflow用户
提问于 2012-08-04 20:52:39
回答 28查看 245.1K关注 0票数 138

当运行任何java应用程序时,或者仅仅运行'java',jvm就会失败:

初始化虚拟机时发生

错误

java/lang/NoClassDefFoundError: java/lang/Object

以下是错误答案的列表:

  1. 正确的Java主目录(包括/bin目录)位于全局路径上,命令/bin
  2. JAVA_HOME is
    1. correctly
    2. Executing
    3. JAVA_HOME

$ java usr ./java完整版"1.7.0_05-b05"

  • The / -fullversion / java中的所有符号链接都指向正确的java installation

  • I在我创建system

  • java -version时未安装任何默认的java错误为above

  • Issuing -fullversion java安装目录结构下的命令也不起作用

  • 这是64位java,适用于64位

有什么想法吗?

EN

回答 28

Stack Overflow用户

发布于 2013-01-23 20:51:18

此问题源于Java安装不正确。

可能性1

注意:此方案仅适用于Java8及更早版本。从Java 9开始,JRE的结构有所不同。rt.jar和好友不复存在,Pack200也不再被使用。

Java标准库包含在各种JAR中,如rt.jardeploy.jarjsse.jar等。当JRE打包时,这些关键的JAR文件被Pack200压缩并存储为rt.packdeploy.packjsse.pack等。Java安装程序应该解压缩它们。如果你遇到了这个错误,很明显这是没有发生的。

您需要在lib/lib/ext/文件夹中的所有.pack文件上手动运行unpack200

视窗

要解压一个.pack文件(例如rt.pack),请运行以下命令:

代码语言:javascript
复制
"%JAVA_HOME%\bin\unpack200" -r -v rt.pack rt.jar

要递归解压缩所有.pack文件,请从JRE根目录运行:

代码语言:javascript
复制
for /r %f in (*.pack) do "%JAVA_HOME%\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"

*nix

要解压一个.pack文件(例如rt.pack),请运行以下命令:

代码语言:javascript
复制
/usr/bin/unpack200 -r -v rt.pack rt.jar

要递归解压缩所有.pack文件,请从JRE根目录运行:

代码语言:javascript
复制
find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;

可能性2

您以其他方式错误地安装了Java。也许你是在没有管理员权限的情况下安装的,或者只是试图从安装程序中解压文件。请使用安装程序和/或更多权限重试。或者,如果您不想使用安装程序,请改用.tar.gz Java包。

票数 189
EN

Stack Overflow用户

发布于 2014-06-16 19:18:38

对于*nix OS上的Java8,请转到<jdk root>/jre/lib (对于我来说,就是/usr/java/jdk1.8.0_05/jre/lib)。从该目录中,执行:

代码语言:javascript
复制
../../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

票数 30
EN

Stack Overflow用户

发布于 2012-10-10 16:32:13

似乎对于64位架构,您必须同时安装32位版本和64位版本的jre (与架构无关的文件,因为rt.jar只在32位版本中分发)。

记住,要注意在全局PATH环境变量中包含正确的java可执行文件。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11808829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档