背景
jdk fastdebug版本说明:http://blogs.oracle.com/kto/entry/mustang_jdk_6_0_fastdebug
jvm会有product build , debug build , fastdebug build类型的版本,
fastdebug版本下载: http://download.java.net/jdk6/6u25/promoted/b01/index.html
找到自己合适的系统的安装包,我选择的是jdk-6u25-ea-bin-b01-linux-i586-debug-27_jan_2011.jar
$ axel -n 10 http://download.java.net/jdk6/6u25/promoted/b01/binaries/jdk-6u25-ea-bin-b01-linux-i586-debug-27_jan_2011.jar $ chmod a+x *.jar $ java -jar jdk-6u25-ea-bin-b01-linux-i586-debug-27_jan_2011.jar
说明:
1. axel是一个多线程下载器,下载速度比wget要快很多。
2. 下载的包为一个自解压的包,运行java -jar后,通过GUI就可以选择解压的最终目录,出来的也就是fastdebug版本
binutils: http://directory.fsf.org/project/binutils/
下载:http://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2
编译:
./configure --prefix=/usr/local/program/binutils make ; make install
hsdis下载: http://kenai.com/projects/base-hsdis/downloads/download/linux-hsdis-i386.so
最后我选择了一个编译好的linux 386的so包,省去了一些编译的过程。
#!/bin/sh BASE=/usr/local/program/fastdebug JAVA_HOME="$BASE/jdk1.6.0_25" export LD_LIBRARY_PATH="$BASE/hsdis-i386.so:$LD_LIBRARY_PATH" PATH=$JAVA_HOME/bin:$PATH
需要切换到fastdebug的jvm时,只需运行下该脚本。
$ . fastdebug.sh
注意点号和fastdebug.sh之间有空格,直接在当前进程中运行该shell,生成的环境变量就会在当前的bash窗口中生效。
测试过程中,通过设置LD_LIBRARY_PATH貌似没用,最后无奈选择了copy到对应jre的lib库下
ln -s /usr/local/program/fastdebug/hsdis-i386.so /usr/local/program/fastdebug/jdk1.6.0_25/jre/lib/i386/client/ ln -s /usr/local/program/fastdebug/hsdis-i386.so /usr/local/program/fastdebug/jdk1.6.0_25/jre/lib/i386/server/