java8编译_只需几步,轻轻松松编译OpenJDK8

现在在window也可以很轻松的编译OpenJDK8了。而且非常简单。

1、需要下载

我的电脑上已经有jdk8的环境了。我看网上说要编译openjdk8需要jdk7的环境。不过我没有安装7也编译成功了。

a、openjdk8:需要编译的。

b、Cygwin:编译JDK需要使用Linux上面的一些工具软件,Cygwin是一个在Window上运行这些软件的工具。

c、Visual Studio 2010 Professional:不必说,编译JDK的工具。

d、freetype :OpendJDK中swing和JConsole要使用freetype的字体渲染功能,这里是直接编译好的。GitHub项目ubawurinna/freetype-windows-binaries.

2、安装编译环境

a、解压openjdk

b、安装Visual Studio 2010 Professional

一路傻瓜式安装,没有特别配置。

c、安装cygwin:

傻瓜式安装,可以选择安装地址。不知道为什么这一步我的没有,不管网上找了一个加上去,添加如图地址:

然后在下一步有一个选择packages,要选择一些安装包。

在下载的openjdk里面有一个html文件:README-builds.html,打开能找到要下载的包,根据package这一列去搜索,再根据描述去判断,找到后选择版本,然后在后面一栏勾上就可以了。

d、freetype

下载下来后,修改一下文件名称,把win64改成lib。大名称也改下。如下图:

3、开始编译

编译也很简单,就两步:配置和编译。不过配置和编译都是在cygwin里面进行的。在配置和编译过程中似乎必然会出现两个异常,可以提前解决,解决方案看第4步内容。

a、配置

打开cygwin,首先window的所以目录都是挂载在/cygdirve目录下的,所以进入进入jdk根目录命令是"cd /cygdirve/d/tools/openjdk"。然后执行配置命令"./configure --with-freetype=/cygdrive/d/tools/freetype --with-target-bits=64 --enable-debug"。具体如下图:

配置完成如下图:

b、编译

配置完成后直接运行命令"make",出现异常解决后"make clean"后在执行"make"。,"make dist-clean"命令可以清除配置。这个过程用的时间较长,我用了差不多一个小时。完成如下图:

c、验证

进入文件夹"D:\tools\openjdk\build\windows-x86_64-normal-server-fastdebug\jdk\bin",执行命令"javac -version"、"java -version"验证。

4、异常处理

一共两个异常,配置期一个编译期一个。

第一个配置期异常,在执行了命令

"bash ./configure --with-freetype=/cygdrive/e/freetype --with-target-bits=64"后一般都会有版本太老的问题,如下如图:

这个问题只是openjdk限制了cygwin的版本,cygwin新版本是完全兼容老版本的。所以可以直接注释调openjdk里面的限制。打开文件:D:\tools\openjdk\common\autoconf\generated-configure.sh。如下图:

在文件中搜索“Your cygwin is too old”找到位置。然后注释其中7217到7255行,如下图:

第二个编译期异常如下图:

这是由于cvtres.exe版本错误导致的结果。因为我们安装的Visual Studio 2010 Professional下面也有两个,我们C盘下也有。所以把VS下这两个修改名称就行。修改的两个文件:

D:\tools\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

D:\tools\Microsoft Visual Studio 10.0\VC\bin\amd64\cvtres.exe

把他们的名称改成cvtres.exe.bak就可以了。

在C:\Windows\http://Microsoft.NET\Framework\v4.0.30319下面的cvtres.exe就可以被使用了。

Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值