问题
当运行任何java应用程序或只是'java'时,jvm失败:
在初始化VM java / lang / NoClassDefFoundError期间发生错误:java / lang / Object
这是一个错误列表:
- 正确的Java主目录(包括/ bin目录)位于全局PATH上
- JAVA_HOME设置正确
- 执行命令java -fullversion工作$ java -fullversion
./java完整版"1.7.0_05-b05"
- / usr / java中的符号链接都指向正确的java安装
- 我在创建系统时没有安装任何'default'java
- java -version失败...与上面相同的错误
- 从java安装的目录结构下发出命令也不起作用
- 对于64位,这是64位java
有任何想法吗?
#1 热门回答(171 赞)
问题来自不正确的Java安装(例如,没有管理员权限的安装或只是解压缩tools.zip)。
你可以卸载,然后使用安装程序和/或更多权限重新安装Java,也可以尝试以下操作:
检查你的JDK文件夹中的*.pack
files injre/lib
和jre/lib/ext
ss,如rt.pack
(Microsoft Windows的默认位置是c:\nameof_jdk_folder\jre\lib
,Unix / GNU Linux的默认位置是/usr/java/lib
)
需要使用以下命令将*.pack
文件解压缩到.jar
文件:
- 对于Windows:%JAVA_HOME%\ bin \ unpack200 -r -v -l""rt.pack rt.jar
- 对于* nix,类似的命令行将解压缩文件:cd / usr / java / lib / usr / bin / unpack200 rt.pack rt.jar
并使用所有* .pack文件重复该步骤并重新启动你的程序。
#2 热门回答(19 赞)
对于java 8 @ * NIX OS:
来自目录"<jdk1.8_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
(可能你不能使用系统的unpack200导致版本问题。)这个unpack200在java 8目录中(对我来说:/usr/java/jdk1.8.0_05/bin)
贝内德克
#3 热门回答(12 赞)
似乎对于64位架构,你必须同时安装32位版本和64位版本的jre(架构无关文件,因为rt.jar仅在32位版本中分发)。
请记住,要注意在全局PATH环境变量中包含正确的java可执行文件。