在windows8.1编译OpenJDK8

声明:本教程在64位windows8.1编译32位JVM

一.编译环境准备

     1.OpenJDK下载

      OpenJDK是sun公司在2006年JavaOne大会上JDK开源部分建立起来的,OpenJDK与OracleJDK大多数源码一样。进入点击打开链接这个有两种方式下载Mercurial和Bundles(6),mercurial是一个版本管理软件早不如SCN,Git流行了我们用第二种,直接点击http://download.java.net/openjdk/jdk8下载,将下载包解压找到README-builds.html用浏览器打开

     2.准备编译环境

1> 安装CYGWIN

      在Windows下编译需要一个Unix类似的环境,尤其是shell,可以通过使用CYGWIN或者是MinGW/MSYS来构建环境。这些模仿环境的工具不同之处主要在于它们对于路径名称的处理。这里以CYGWIN为例。点击https://cygwin.com/setup-x86_64.exe下载,运行setup-x86_64.exe

如下图选择第二个:


下一步就是选择下载文件所保存的路径,自行选择,再下一步选择Direct Connection,接着下一步在user URL添加这个http://mirrors.163.com/cygwin这U

RL,这个URL最全最快



在查找框中通过Interpreters查找BinaryName选择上面需要下载的exe,下载之后再安装,你也可以全部下载(我全部下载安装了共占94G都是泪),一定要要将安装好的cygwin的bin路径添加到path路径中

2>安装freetype 

      下载地址: http://gnuwin32.sourceforge.net/downlinks/freetype-bin-zip.php 
会得到一个freetype-2.3.5-1-bin.zip文件,解压记住解压路径,这个freetype是用来编译jdk中awt和swing中的渲染字体库

3>Visual Studio 2010 和 Visual Studio 2010 SP1 

Visual Studio 2010下载地址: 
http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso 

Visual Studio 2010 SP1下载地址: 
http://download.microsoft.com/download/E/B/A/EBA0A152-F426-47E6-9E3F-EFB686E3CA20/VS2010SP1dvd1.iso 

都是英文版,先装Visual Studio 2010再装Visual Studio 2010 SP1 ,OpenJDK Windows构建需要VS2010专业版编译器只找到32位的所以编译32位的JDK

4>安装BootStrap JDK

因为OpenJDK各个组成部分(Hotspot,JDK API,JAXWS,JAXP....)有的是c++写的更多代码是java自身实现的,所以编译这些java代码需要一个JDK,官方称这个叫BootStrap JDK。编译OpenJDK8用JDK7,以此类推。所以配置一个有JDK7的环境你懂得你自己应该会这个JDK配置环境

二.开始编译JDK

   上面我们将需要的编译环境搭好了现在开始编译JDK,下面好多坑一个个解决,进入OpenJDK8解压的路径我这里为D:\Application\HotSpot\openjdk-8-src-b132-03_mar_2014\openjdk,执行下面的命令

bash ./configure --with-freetype=D:\Application\freetype-2.3.5-1-bin --with-target-bits=32 --enable-debug
其中 D:\Application\freetype-2.3.5-1-bin 就是freetype解压的路径
--with-target-bits=32表示构建32位的JDK, 
--enable-debug表示构建一个可以调试的JDK(fastdebug), 
--with-jvm-variants=client表示只构建client版的JVM,不加这个参数默认构建server版的, 
如果使用--with-jvm-variants=client,server则同时构建client和server版的JVM。


通过这张图咱们能知道运行配置的它是运行\openjdk\common\autoconf路径下的generated-configure.sh的shell文件。以后咱们有什么问题就可以在这个路径中的各个文件查找注释掉就可以了

这之后都是坑。

 1. Your cygwin is too old. You are running 2.6.0(0.304/5/3), but at least cygwin 1.7 is required. Please upgrade.

  尼玛顿时奔溃老兄我92G呀重新下载吗别闹,别急打开generated-configure.sh找到7217-7225注释掉他们就可以了


2.checking what kind of 'find' is first on the PATH... Windows configure: Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools. configure: This will not work. Please correct and make sure /usr/bin (or similar) is first in path.

这个好改将,原先加入path的cygwin的bin路径加入到path列表中的最前面

3.Not Found   msvcr100.dll

这个是有的只是找不到而已我的在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\X64中将这个加入path路径中或者将C:\Program Files (x86)\Microsoft Visual Studio 10.0\path中加入path路径中

4.configure: Could not find D:\Application\freetype-2.3.5-1-bin/lib/freetype.dll.Ignoring location.

有两种解决办法

 一就是将D:\Application\freetype-2.3.5-1-bin\bin中的freetype6.dll粘贴到../lib中并修改为freetype.dll

或者重新编译freetype.dll

这个就是freetype没有编译的问题了。使用Visual Studio C++ 2010对其编译一下即可。具体步骤如下:

      1)用VS2010打开freetype/builds/windows/vc2010下的freetype.sln

      2)选中项目右击,选择属性,出现配置框,点击配置管理器,界面如下图。

技术分享

技术分享

      3)右击项目,选择生成即可。在freetype目录中/objs/vc2010/x64找到刚刚自己生成的freetype.dll文件。在freetype根目录中创建一个lib文件夹,将这个文件放入其中。要32位的就是修改一下相应的配置就行了。除了dll,还要生成一个lib格式。网上看到其编译64位时平台工具集要用的是WindowsXXSDK,32位用的是v100。但是实际上好像没有什么问题,姑且先记录一下。这里编译的时候警告了编码问题,但是当时没有管,不知道后面产生的乱码现象是不是这个问题。
  我就有这几个bug了如果你你还有就去\openjdk\common\autoconf中找到对应文件打开文件ctrl+f查找对应的bug可以了就。

配置成功界面


配置成功后在下载的OpenJDK中运行make all,之后就开始编译了2个多小时自己等祝你好运

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值