自己编译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、写一个脚本,专门用来配置环境变量的:

Bat代码  

  1. set ALT_BOOTDIR=D:\junction\JDK\jdk1.6.0
  2. set ALT_JDK_IMPORT_PATH=%ALT_BOOTDIR%
  3. set ANT_HOME=D:\Software Development Environment\Build\apache-ant-1.8.2
  4. set ALT_MSVCRNN_DLL_PATH=C:\WINDOWS\system32
  5. set ALT_DXSDK_PATH=D:\Software Development Environment\Microsoft DirectX 9.0 SDK (Summer 2004)\
  6. set ALT_FREETYPE_HEADERS_PATH=D:\Software Development Environment\Font\freetype-2.4.6\include
  7. set INCLUDE=D:\junction\VS\VC\lib;%INCLUDE%
  8. set LIB=D:\junction\VS\VC\lib;%LIB%
  9. set LIBPATH=%LIB%
  10. set PATH=D:\junction\VS\VC\bin;D:\junction\VS\Common7\IDE;D:\junction\Cygwin\bin;%PATH%
  11. set BUILD_CORBA=false
  12. 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,这个命令可以检查错误,报错:

Java代码  

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

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

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

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

Java代码  

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

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

Java代码  

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

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

Java代码  

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

自己编译JDK[转]的相关文章

Centos下编译JDK

因为OpenJDK是开源的,这里使用openJDK进行编译联系 环境要求 Centos6.7 64位 openjdk-7u40-fcs-src-b43-26_aug_2013.zip bootstrap JDK:  jdk1.6.0_38 因为我们是编译,所以环境的话可以根据自己的实际情况进行调整,JDK的源码包可以去这个网站进行下载https://jdk7.java.net/source.html boostrap JDK:辅助JDK,意思是我们要编译一个新的JDK时需要别的JDK来辅助完成,

重新编译jdk源码,启用debug信息

我有一个不知道是好还是不好的习惯,搞不懂的一些玩意儿,喜欢调试然后单步执行看这玩意儿到底是怎么运行的. 今天看到正则表达式的时候,appendReplacement()这个方法怎么也看不明白它是怎么工作的,于是想调试源码单步执行,然后watch几个关键的变量看看. 刚开始的时候,eclipse里调试模,单步,发现没有办法进入方法内. 用google百度了一下,发现是JRE配置的问题. 使用jre是不可以的,需要使用jdk的环境.(之前真的没有注意到这一点) 于是window->Preferenc

【分享】Linux(Ubuntu)下如何自己编译JDK

最近在看<深入理解 Java 虚拟机>这本书.里面提到了如何手动编译JDK,于是就试了试. 在编译的过程中,遇到了一些问题.上网一搜,发现了一篇很好的文章,跟大家分享一下:ubuntu 13.04环境编译OpenJDK7 虽然文章里说的编译环境是 13.04 ,但笔者在 14.04 的环境下,参考着文章也能成功编译. [分享]Linux(Ubuntu)下如何自己编译JDK

Eclipse修改JDK环境,修改项目编译JDK.

修改Eclipse默认JDK: window     preferences       java     installed JREs       Add..         选择 Standard VM            选择jdk安装目录           finish 修改项目使用JDK环境: 对项目右键       Java build Path         Libraries          选择当前的JDK         remove              Add

自己动手在Linux下编译JDK

因为决定学习Java虚拟机,所以打算从自己编译JDK开始入手.本文是学习Java虚拟机的第一篇文章,后续会有更多相关文章. 获取源码 本文选择的源码版本为1.7.可以使用如下命令来获取源码: 1)安装Mercurial的最新版本 Mercurial是与Git相似的一个分布式版本控制系统,但使用方法上与Subversion相似.如果你使用过Subversion,很容易迁移到Mercurial.安装命令如下: $ sudo apt-get install python $ sudo apt-get

centos7编译JDK

参考: <深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) - 周志明> 1.要编译的JDK源码 方法一:可以通过 一款叫 Mercurial (OpenJDK 的代码版本管理工具,类似于Git)代码版本管理工具从Respository中获取源码 安装后,执行 hg clone https://hg.openjd.java.net/jdk/jdk12 由于访问速度过慢,不推荐使用方法 一 方法二:直接在OpenJDK的官网上下载打包好的JDK12源码包 访问地址:http://hg.

查看编译后的calss文件编译jdk版本

使用UtralEdit或者sublime text打开编译后的.class文件, 其中cafe babe为magic number(魔数),标识这个文件是java的class文件. 0033转换成10进制是51(3*16^1+3*16^0).而51则是jdk 1.7.(50是jdk1.6.49为jdk1.5) 而51就是jdk1.7的minor.major version. 延伸:: 下表既是minor.major version表

maven设置编译jdk版本,以及maven打包

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 12.0px ".PingFang SC" } 1,设置编译版本为jdk 1.8 <build> <plugins> <plugin> <groupId>org.apach

【深入浅出-JVM】(4):编译 jdk

环境 mac,xcode,jdk8,openjdk,autoconf 步骤 安装autoconf brew install autoconf 下载openjdk源码 git clone https://github.com/unofficial-openjdk/openjdk.git cd openjdk && git checkout -b build 在openjdk 根目录下执行编译脚本,大约 10 分钟不到,执行完成 bash configure --enable-debug --