为了解决博客Jstack -F 参数在低版本的问题,必须重新编译自己的jdk,按着java里面自带的build的文档,基本就傻眼了,没想到作为开源之首的java,编译自己的jdk的文档尽然如此陈旧,不得已还是自己摸石子过河吧。
1. 下载源码 ,直接去oracle 的官方网站:http://download.java.net/jdk6/source/
注意你要下载2个jar
JDK 6u23 Source under the JRL licensejdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar,136.53 MB (MD5 Checksum) (or) Subversion(respository (read-only) | Readme) JDK 6u23 Readme and Build InstructionsJDK Binaries for Source Build 6u23jdk-6u23-fcs-bin-b05-jrl-12_nov_2010.jar, 2.02 MB (MD5 Checksum)
运行将2个jar 解开源文件合并在一起。
2.jdk1.6 README-builds.html 里说要jdk1.5作为Bootstrap,这是错的,必须需要jdk1.6的版本,需要安装一个jdk1.6的版本。
3. 环境变量的几个重要参数,你也可以在make 里设置环境参数
ALT_BOOTDIR=jdk1.6.0_22 --》就是你bootstrap jdk1.6的版本的安装目录
ALT_DEVTOOLS_PATH=/usr/bin
DEVTOOLS_PATH=/usr/bin
4.cups 安装
yum install cups*
5. centos X11的包,在编译中是需要linux x11的包,在编译前最好全部安装完
6.如果你是bit64位(amd64)的架构,修改\sourcepath\j2se\make\sun\jdbc\Makefile在编译的脚本里添加 -fPIC参数
$(TEMPDIR)$(CC) -shared -fPIC -o $@ $<$(TEMPDIR)/libodbc.so: dummyodbc.c $(TEMPDIR)$(CC) -shared -fPIC -o $@ $<
7. 将/usr/share/X11目录全部拷贝到/usr/X11R6/lib目录下 8.到目录 /sourcepath/control/make/ 下运行
make dev-sanity BUILD_DEPLOY=false SKIP_COMPARE_IMAGES=true ALT_BOOTDIR=jdk1.6.0_22 ALT_DEVTOOLS_PATH=/usr/bin HOTSPOT_BUILD_JOBS=2
检查一遍
然后在运行
make dev BUILD_DEPLOY=false SKIP_COMPARE_IMAGES=true ALT_BOOTDIR=jdk1.6.0_22 ALT_DEVTOOLS_PATH=/usr/bin HOTSPOT_BUILD_JOBS=
编译正式的包
编译过程的错误
1如果编译过程中出现错误:
/usr/bin/ld: cannot find -lxxxx
一般都是系统缺乏对应的库文件,或者版本不对
解决办法
yum install libxxxx*
下面的例子是我的系统所缺的包
yum install libXext*yum install libXi*yum install libXmu*
2. 错误
`/usr/X11R6/lib/X11/config/Imake.tmpl', needed by `xmkmf'. Stop.解决办法 :
yum install imake
同时把/usr/share/X11 拷贝到目录 /usr/X11R6/lib/X11
万能的yum可以基本帮你解决缺包和库的问题,如果你还有什么问题,可以ping我。
|