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包。
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。
添加回答
举报