一尘不染

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

java

当运行任何Java应用程序或仅运行“ java”时,jvm都会失败:

VM初始化
java / lang / NoClassDefFoundError时发生错误:java / lang / Object

以下是错误答案的列表:

  1. 正确的Java主目录(包括/ bin目录)位于全局PATH上
  2. JAVA_HOME设置正确
  3. 执行命令java -fullversion可以正常工作
$ java -fullversion

./java full version "1.7.0_05-b05"
  1. / usr / java中的符号链接都指向正确的Java安装
  2. 创建系统时未安装任何“默认” java
  3. java -version 失败…与上述相同的错误
  4. 从Java安装目录结构下发出命令也不起作用
  5. 这是用于64位的64位Java

有任何想法吗?


阅读 515

收藏
2020-03-12

共1个答案

一尘不染

此问题源于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

要递归解压缩所有.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软件包。

2020-03-12