当运行任何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"
Run Code Online (Sandbox Code Playgroud)/ usr/java中的符号链接都指向正确的java安装
我在创建系统时没有安装任何'default'java
java -version 失败......与上面相同的错误
从java安装的目录结构下发出命令也不起作用
对于64位,这是64位java
有任何想法吗?
Rig*_*802 184
此问题源于不正确的Java安装.
注意:此方案仅适用于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
Run Code Online (Sandbox Code Playgroud)
要从.packJRE根运行中递归解压缩所有文件:
for /r %f in (*.pack) do "%JAVA_HOME%\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"
Run Code Online (Sandbox Code Playgroud)
要解压缩一个.pack文件(例如rt.pack),请运行:
/usr/bin/unpack200 -r -v rt.pack rt.jar
Run Code Online (Sandbox Code Playgroud)
要从.packJRE根运行中递归解压缩所有文件:
find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;
Run Code Online (Sandbox Code Playgroud)
您以其他方式错误地安装了Java.也许您安装时没有管理员权限,或者试图简单地从安装程序中提取文件.请使用安装程序和/或更多权限重试.或者,如果您不想使用安装程序,请改用.tar.gzJava包.
bet*_*pfa 26
对于*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
Run Code Online (Sandbox Code Playgroud)
为了防止在安装了另一个JRE的情况下出现版本问题,请使用unpack200与您正在修复的JRE一起使用的版本问题- 也就是说,从命令行使用../../bin/unpack200(对我来说,扩展为/usr/java/jdk1.8.0_05/bin/unpack200),而不仅仅是unpack200.
Tom*_*aso 13
似乎对于64位架构,您必须同时安装32位版本和64位版本的jre(架构无关文件,因为rt.jar仅在32位版本中分发).
记住那时要注意在全局PATH环境变量中包含正确的java可执行文件.
iaf*_*rek 11
不耐烦的人的快速解决方案 ;)在Windows机器上,尝试这样:转到C:\Windows\System32目录并删除java.exe(或将其重命名为类似的东西java.exe.old).
由于至少1.6,java.exeWindows目录中不应该有.如果有的话,这是一个遗留物.
更多阅读:
我真的很惊讶2012年的一个问题还没有得到批准的答案,我在2015年的Win 7 32位操作系统上遇到了同样的问题!
那发生了什么?
基本上,一切都工作正常,我下载H2数据库,当我试图开始时,H2 Console (Command Line)我得到:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题,我能够确认相同的症状:
JAVA_HOME设置正确:
echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26
Run Code Online (Sandbox Code Playgroud)
java -versionjava --fullversion工作正常,失败了
java -fullversion
java full version "1.6.0_45-b06"
Run Code Online (Sandbox Code Playgroud)
解决方案:
转到C:\Windows\System32目录并删除(我实际上已重命名)java.exe文件!!!!
现在,我得到:
java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
并且H2 Console (Command Line)工作正常!
积分转到本论坛的最后一篇文章:https: //bukkit.org/threads/java-lang-noclassdeffounderror-java-lang-object.70450/
小智 10
我今天下载了新的JDK(1.8.0.73),c:> java.exe并且臭名昭着:
Run Code Online (Sandbox Code Playgroud)Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
我只想在这里分享我的工作解决方案.
当我进入jdk\bin文件夹时,Java会运行正常,所以我知道它是PATH.我开始PATH只是\jdk\bin在CMD证明它并且它有效.
所以,我想,PATH必须有一个文件夹java.exe导致了冲突.事实证明,这是C:\>ProgramData\Oracle\Java\javapath保存符号链接到可执行文件.
java.exe指着jre\bin.当我开始时文件已损坏\jre\bin\java.exe- 完全相同的错误.答对了.我重新安装了JRE,问题就消失了.快乐的编码......
小智 8
您很可能在安装中缺少一个名为rt.jar的文件,该文件包含java.lang.Object的类文件.检查安装文件等.
特别要注意的是,64位intsaller覆盖(或安装"旁边")现有的32位安装.换句话说,要获得完全可用的64位安装,必须首先运行32位安装,如果您有64位安装机器,请使用64位安装进行安装...
如果您只进行64位安装,则会丢失安装中的某些文件,并且会出现上述错误.
小智 6
在Windows 10上,我遇到了与JRE 1.8(8u121)相同的问题.
打字
java -version
Run Code Online (Sandbox Code Playgroud)
cmd提示符返回
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Run Code Online (Sandbox Code Playgroud)
所有其他命令,echo %JAVA_HOME%,echo %JRE_HOME%,echo %PATH%,java -fullversion工作得很好.
转到系统管理面板上的环境变量,从PATH中删除链接C:\ProgramData\Oracle\Java\javapath,并确保在PATH中设置链接C:\Program Files\Java Folder\bin.
之后,检查是否C:\Windows\System32存在java.exe文件; 如果为true,则删除该文件.
现在打字java -version它工作正常.
小智 5
当您通过_uncompressing_它而不是_executing_它安装JDK时会发生此问题.
举例:
unzip jdk-6u45-linux-x64.bin (wrong)
sh ./jdk-6u45-linux-x64.bin (right)
Run Code Online (Sandbox Code Playgroud)
在第一个场景中,运行时库(如rt.jar)不会自动解包(因此,您可以找到rt.pack文件等,而不是.jar文件).
我最近也遇到了同样的问题。就我而言,我的 Windows 7 机器自动下载了 java 并添加C:\ProgramData\Oracle\Java\javapath到我的路径环境变量的开头,这弄乱了我的 java.util.concurrent.java 文件。一旦我把它从路上去掉,它就起作用了。
| 归档时间: |
|
| 查看次数: |
215500 次 |
| 最近记录: |