下载了一个jdk1.7的Bin安装
但是安装和设置好环境之后运行java看版本号发现出错:
$ java -version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
检查PATH和CLASSPATH都设置没问题,查看安装目时居然发现lib目录下没有tools.jar和jre/lib下没有rt.jar:
$ ls -al /usr/java/jdk1.7/lib
total 8148
-rw-r--r-- 1 root root 139034 Oct 31 15:08 dt.jar
-rw-r--r-- 1 root root 1161394 Oct 31 15:08 htmlconverter.jar
-rw-r--r-- 1 root root 18381 Oct 31 15:08 ir.idl
-rw-r--r-- 1 root root 429 Oct 31 15:08 orb.idl
-rw-r--r-- 1 root root 1743428 Oct 31 15:08 tools.pack
-rwxr-xr-x 1 root root 145112 Oct 31 15:08 unpack
取而代之的是tools.pack和rt.pack。
于是使用lib目录下自带的uppack工具解压这两个jar:
$ cd /usr/java/jdk1.7/lib
$ unpack tools.pack tools.jar
$ cd ../jre/lib
$ ../../unpack rt.pack rt.jar
在查看:
$ ls -l /usr/java/jdk1.7/lib/tools.*
-rw-r--r-- 1 root root 5092901 Oct 31 15:29 /usr/java/jdk1.7/lib/tools.jar
-rw-r--r-- 1 root root 1743428 Oct 31 15:08 /usr/java/jdk1.7/lib/tools.pack
$ ls -l /usr/java/jdk1.7/jre/lib/rt.*
-rw-r--r-- 1 root root 26782544 Oct 31 15:32 /usr/java/jdk1.7/jre/lib/rt.jar
-rw-r--r-- 1 root root 8684102 Oct 31 15:08 /usr/java/jdk1.7/jre/lib/rt.pack
在运行java一切正常了:
java -version
java version “1.7”