之所以要重新编译Jdk的原因请参考:http://hllvm.group.iteye.com/group/topic/43576(非常感谢R大的解答),下面就说下在windows下编译SunJdk(OracleJdk)6u23的过程。
一:下载源码。
下载jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar、jdk-6u23-fcs-bin-b05-jrl-12_nov_2010.jar
http://www.java.net/download/jdk6/6u23/promoted/b05/jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar
http://www.java.net/download/jdk6/6u23/promoted/b05/jdk-6u23-fcs-bin-b05-jrl-12_nov_2010.jar
下载完成之后分别执行
java -jar jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar
java -jarjdk-6u23-fcs-bin-b05-jrl-12_nov_2010.jar
分别安装,然后合并到一起。
二:配置编译环境:
1、安装MicroSoft Visual Studio .NET 2003 Professional。下载地址:http://pan.baidu.com/s/1c0rPbFU
2、安装MicroSoft DirectX 9。下载地址:http://pan.baidu.com/s/1nPvbC
3、安装Microsoft Layer for Unicode (MSLU)。下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=4237
4、安装cygwin,下载地址:http://cygwin.com/setup-x86_64.exe,安装CYGWIN时不能直接默认安装,因为表1-2中所示的工具都不会进行默认安装,但又是编译过程中需要的,因此要在图1-6的安装界面中进行手工选择。
表1-2 需要手工选择安装的CYGWIN工具
文件名 | 分类 | 包 | 描述 |
ar.exe | Devel | binutils | The GNU assembler, linker and binary utilities |
make.exe | Devel | make | The GNU version of the 'make' utility built for CYGWIN. |
m4.exe | Interpreters | m4 | GNU implementation of the traditional Unix macro processor |
cpio.exe | Utils | cpio | A program to manage archives of files |
gawk.exe | Utils | awk | Pattern-directed scanning and processing language |
file.exe | Utils | file | Determines file type using 'magic' numbers |
zip.exe | Archive | zip | Package and compress (archive) files |
unzip.exe | Archive | unzip | Extract compressed files in a ZIP archive |
free.exe | System | procps | Display amount of free and used memory in the system |
注意:cygwin自带的make.exe的版本是4.0或者3.81,这两个版本在windows下会不识别C:,需要替换成make3.82版本。
下载地址:http://pan.baidu.com/s/1mgNwO6s 下载后重命名为make.exe替换%CYGWIN_HOME%/bin/make.exe
安装完毕之后将cygwin下的bin目录加入到PATH环境变量。
5、下载freetype,下载地址:http://pan.baidu.com/s/1sjlsUvj
6、准备一个Bootstrap Jdk(SunJdk1.6即可)。
7、msvcrt.dll 下载地址:http://pan.baidu.com/s/1bnfFNVx
三:进行编译
首先删除JAVA_HOME、CLASSPATH环境变量,然后执行%VS2003_HOME%/Vc7/bin/vcvars32.bat设置环境变量
注意:为了保险起见执行.bat文件后手动查看下PATH环境变量(我本机的如下):
C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\bin;C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Tools\Bin;C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin;C:\cygwin64\bin
确保PATH环境变量中cygwin的bin目录在vs2003后面。
做完这些之后开始正式编译:
打开cmd,执行以下命令(可以将下列命令copy到.bat文件下,dos下直接执行):
#你的Bootstrap Jdk的目录
set ALT_BOOTDIR=C:/jdk1.6.0_45
#你的Bootstrap Jdk的目录
set ALT_JDK_IMPORT_PATH=C:/jdk1.6.0_45
#你的freetype的include目录
set ALT_FREETYPE_HEADERS_PATH=C:/compileSunJdk6u23/freetype/include
#你的freetype的bin目录
set ALT_FREETYPE_LIB_PATH=C:/compileSunJdk6u23/freetype/bin
#你的MicrosoftDirectX9.0的目录
set ALT_DXSDK_PATH=C:/compileSunJdk6u23/MicrosoftDirectX9.0
#你的msvcrt.dll文件所在的目录
set ALT_MSVCRT_DLL_PATH=C:/compileSunJdk6u23/msvcr
#你的vc的编译器目录
set ALT_COMPILER_PATH=C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/bin
#msdevtools的目录
set ALT_MSDEVTOOLS_PATH=C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Common7/Tools
#你的MicrosoftLayerForUnicode目录
set ALT_UNICOWS_DLL_PATH=C:/compileSunJdk6u23/MicrosoftLayerForUnicode
#你的MSVCDIR目录
set MSVCDIR=C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7
#设置INCLUDE
set INCLUDE=C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/include;C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include;C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/atlmfc/include
#设置LIB
set LIB=C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/lib;C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib;C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/Vc7/atlmfc/lib
设置完这些环境变量之后输入bash命令进入bash下,然后cd 到%JDK_SOURCE_CODE_HOME%/control/make/下,检查下依赖的环境是否全部安装完毕:
make dev-sanity BUILD_DEPLOY=false SKIP_COMPARE_IMAGES=true HOTSPOT_BUILD_JOBS=6 COMPILER_VERSION=VS2003
如果检查没有问题的话会出现以下字样:
Sanity check passed.
然后在执行最后的make命令之前,注意有两个坑:
1、需要将C:/Windows/System32/find.exe 暂时移动到其他目录下,避免与cygwin/bin/find.exe冲突,造成在编译过程中发生错误。
2、需要将将%VS2003_HOME%Common7\Tools\bin 中的rc.exe copy到 %VS2003_HOME%Common7\Tools下一份,因为在执行过程中发现
会报/bin/sh: C:/PROGRA~2/MICROS~2.NET/Common7/Tools/rc: No such file or directory的错误。
最后执行:
make dev BUILD_DEPLOY=false SKIP_COMPARE_IMAGES=true HOTSPOT_BUILD_JOBS=6 COMPILER_VERSION=VS2003
执行大概会消耗40分钟左右,耐心等待下。
PS:在Linux下编译Oracle JDK6u23的话,请参考R大的http://rednaxelafx.iteye.com/blog/875957,本文算是对JRL源码构建OracleJDK6u23在windows上编译的一个补充。
欢迎转载,请在转载时注明文章出处:http://anonymman.iteye.com/blog/2160370
相关推荐
OpenJDK 采用 GPL V2 协议,而 Oracle JDK 则采用 JRL 协议。GPL V2 协议允许在商业上使用,而 JRL 协议则只允许个人研究使用。这意味着,OpenJDK 可以在商业项目中使用,而 Oracle JDK 则不能。 2. 代码内容不同 ...
相反,OracleJDK则采用JRL(Java Runtime License),该协议限制了商业用途,主要用于个人研究或开发。这使得企业用户在选择JDK时需要考虑其许可需求和法律约束。 其次,由于产权问题,OpenJDK并不包含OracleJDK中...
来自OpenJDK网站文件jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar j2se\src\share\classes路径(需安装) JDK6u23源码
OpenJDK 和 Oracle JDK 的主要区别在于授权协议的不同,OpenJDK 采用 GPL V2 协议发布,而 Oracle JDK 则采用 JRL 协议发布。两个协议虽然都是开放源代码的,但是在使用上的不同在于 GPL V2 允许在商业上使用,而 ...
但如果仅从“开源”字面意义(开放可阅读的源码)上看,其实Sun自JDK 1.5之后就开始以Java Research License(JRL)的形式公布过Java源码,主要用于研究人员阅读(JRL许可证的开放源码至JDK 1.6 Update 23为止)。...
openjdk 采用 GPL V2 协议开放源代码,而 Oraclejdk 则采用 JRL 协议。两者协议虽然都是开放源代码的,但是在使用上的不同在于 GPL V2 允许在商业上使用,而 JRL 只允许个人研究使用。 二、代码库差异 openjdk 不...
### Linux下安装JDK 1.8 的详细步骤与注意事项 #### 一、JDK与OpenJDK的区别 在开始介绍如何在Linux环境下安装JDK 1.8之前,我们首先了解一下JDK与OpenJDK之间的区别。这些差异对于用户来说很重要,尤其是在选择...
总之,“通达信指标公式源码无敌能手 主图指标 源码.doc”中的公式综合运用了移动平均线、高低点、价格比较等技术,通过多维度的条件判断来构建一个复杂的趋势识别系统,旨在提供买卖决策的参考依据。对于投资者而言...
通达信指标公式源码短线买卖公式.doc 通达信指标公式源码短线买卖公式是基于通达信指标的短线买卖公式,该公式主要用于股票市场的短期交易。该公式通过计算股价的高低点、移动平均线、相对强弱指数等技术指标,来...
openjdk采用GPL V2协议,而jdk采用JRL协议。 openjdk没有部署功能,不包含浏览器插件、Java Web Start、Java控制面板等。 openjdk不包含JMX中的可选元件SNMP部分的代码,而Icedtea则为这些不完整的部分开发了相同...
而Oracle JDK(或Sun JDK)则是由Oracle公司提供,采用JRL(Java Research License)协议,主要用于个人研究,对商业使用有限制。两者的主要区别在于授权协议、功能完整性和源代码差异。 1. 授权协议:OpenJDK采用...
例如,文档中提到的公式源码中,`JRH` 和 `JRL` 分别代表了两天内的最高价和最低价,`MA3` 是3日简单移动平均线,`YTSL` 是一个加权平均线,用于平滑价格数据。这些指标的交叉或位置变化可以作为买卖点的参考。 ...
首先,源码中的 `JRH` 和 `JRL` 分别代表近两日的最高价(HHV)和最低价(LLV),这两个函数用于捕捉价格波动的极端值,反映出短期内的价格走势强度。`MA3` 是收盘价的3日简单移动平均线(SMA),它帮助我们了解短期价格...
Oracle JDK使用Java Research License(JRL),而OpenJDK则是完全开源的。从Java SE 7开始,Oracle的JVM产品JRockit与HotSpot合并,统一为一个JVM。 JVM有两种运行模式:Server模式和Client模式。Server模式适合长...
jrl-cmakemodules教程该软件包包含一组全部基于jrl-cmakemodules的“项目”。 它针对两件事: 向新用户介绍jrl-cmakemodules 突出一些鲜为人知的功能随时为该存储库贡献新项目!
本教程主要讲解如何编写通达信指标公式源码,以实现主图上的趋势画线。 首先,我们看到公式中定义了一些变量,如JRH、JRL、MA3、YTSL等。这些变量用于存储不同周期的最高价、最低价、收盘价的移动平均值等数据,以...
本文档主要介绍了一套自用精品短线无敌主副图全套及选股公式通达信指标公式源码,旨在帮助股票投资者更好地选择股票和进行投资决策。 知识点1:技术指标的重要性 技术指标是股票投资者进行投资决策的重要工具,...
标题中的“Windows文件图标修改器.rar”表明这是一个用于更改Windows操作系统中文件类型的图标的工具,通常这类工具能够帮助用户自定义文件图标以达到个性化或更好的视觉识别效果。在Windows 7这个操作系统环境下,...