自己编译JDK

注:还有问题,还没有成功,哪位能帮忙解答一下 -_-~|||

 

0、首先,要有耐心,相信会有够折腾的;如果你会提出“为什么要自己做编译JDK这样无聊的事情”这样的问题的话,还是别往下看了,浪费时间啊。

我是参照openjdk的这个文档(README-builds.html)来做的,附件传不上去我就不传了,openjdk里面有。

 

1、我是再Windows上面编译的,肯定比Linux下要麻烦一些,首先访问到 http://download.java.net/openjdk/jdk7/

下载openjdk-7-fcs-src-b147-27_jun_2011.zip

解压(这个版本不需要JDK Plug)。

 

2、下载Visual Studio 2010版本,安装。JDK就是用它来编译的。

 

3、安装Ant,1.7.1版本以上。

 

4、安装FreeType(http://www.freetype.org/download.html),是一个字体渲染库:

http://download.savannah.gnu.org/releases/freetype/

 

5、文档上说要安装InfoZIP(http://www.info-zip.org/),我没有下。

 

6、安装Cygwin(http://www.cygwin.com/),cygwin是一个在windows平台上运行的unix模拟环境,这样就可以在Windows上面执行sh脚本了,安装的时候至少要在可选包里面把ar、make、m4、cpio、gawk、file、zip、unzip、free、make这几个包勾上。

 

7、安装DirectX 9.0 SDK(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21416)。

 

8、写一个脚本,专门用来配置环境变量的:

set ALT_BOOTDIR=D:\junction\JDK\jdk1.6.0
set ALT_JDK_IMPORT_PATH=%ALT_BOOTDIR%
set ANT_HOME=D:\Software Development Environment\Build\apache-ant-1.8.2
set ALT_MSVCRNN_DLL_PATH=C:\WINDOWS\system32
set ALT_DXSDK_PATH=D:\Software Development Environment\Microsoft DirectX 9.0 SDK (Summer 2004)\
set ALT_FREETYPE_HEADERS_PATH=D:\Software Development Environment\Font\freetype-2.4.6\include
set INCLUDE=D:\junction\VS\VC\lib;%INCLUDE%
set LIB=D:\junction\VS\VC\lib;%LIB%
set LIBPATH=%LIB%
set PATH=D:\junction\VS\VC\bin;D:\junction\VS\Common7\IDE;D:\junction\Cygwin\bin;%PATH%
set BUILD_CORBA=false
set JAVA_HOME=

 说明几个事情:

(1)JAVA_HOME环境变量需要设为空,这样就取消了这个环境变量。

(2)BUILD_CORBA设为false,是因为我的系统是中文版的,Java IDL会因为生成了中文注释而出错。

(3)像JDK、Cygwin等路径最好不要有中文和空格(比如出现了空格后面make的时候会警告),可我已经安装到带有空格的路径下了,怎么办?我想了个办法,下载了一个M$的junction工具:http://technet.microsoft.com/zh-cn/sysinternals/bb896768.aspx,它可以创建一个类似于文件夹映像,很像Linux下面的符号链接,这样新创建的映像路径设为没有空格的英文路径即可。

 

9、到openjdk目录下,执行:make sainty,这个命令可以检查错误,报错:

Compiler-msvc.gmk:117: *** COMPILER_VERSION cannot be empty here. Stop.

网上找到一篇文章,说明了这个情况:http://www.java.net/node/659597

不过我直接编辑这个gmk文件,直接把COMPILER_VERSION写入,绕过这个问题。

 

10、继续执行make sainty,接着报错:

sanity-rules.gmk:64: *** multiple target patterns.  Stop.

网上找到的文章这样说:(http://mail.openjdk.java.net/pipermail/build-dev/2007-July/000116.html) 

> Download a patched cygwin make binary from
> http://www.cmake.org/files/cygwin/make.exe

我就下了并且替换了,接着继续报错,说找不到cygintl-3.dll,无奈,我去下载了cygintl-3.dll,接着报:

make.exe - 损坏的图像
---------------------------
应用程序或 DLL D:\junction\Cygwin\bin\cygintl-3.dll 为无效的 Windows 映像。请再检测一遍您的安装盘。 

汗,暂时不搞了。。。

 

哪位大侠了解情况帮忙指点一下。 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值