windows10 编译openjdk8及坑

我只试过win10下编译,踩到的坑也不少。简单记录一下,有可能某些没有截图。

1.准备安装或者解压工具

一下几款工具已经放到网盘,整套都是我编译时期用过的。省去自己下载的麻烦和不兼容问题。

① 安装 vs 2010 英文版

用中文版的几乎都翻车了。安装时,只需要c++功能。

注意坑 : vs安装路径不要有空格,不要有中文,默认安装路径别用了 。安装cygwin也需要注意。

② 安装 cygwin

下面几个功能要在安装时下载, 看如下链接

https://www.cnblogs.com/jpfss/p/11641045.html

基本思路还是根上述博客一致, 不过这里加了点自己遇到的问题,以及我的解决办法

③ 下载解压 freetype

④ 下载解压 8或更新版本的jdk并配置环境变量

⑤ 下载解压 openjdk8源码

2.环境配置

 jdk环境变量

这里我提供了一个已经编译好的openjdk下载, 直接解压配置环境变量。 

注意 坑 :1 JAVA_HOME 的配置直接用绝对路径 ,不要用 %java_openjdk%这种作为值。切记。当然,classpath 和path 依旧可以用 %JAVA_HOME%\lib  %JAVA_HOME%\bin 表示, 

最好用绝对路径。2  在path路径中会有这么一个值

请务必将其干掉,直接删除 ,上述两个问题如果不搞定,编译的时候就会报出跟jdk相关的错误。

3. 编译freetype

看如下链接吧。 有图文。

https://www.cnblogs.com/jpfss/p/11641045.html

4. 解压openjdk源码到自定义路径下

注意坑:不要有空格和中文

5.生成配置脚本

这一步直接按照上述链接中的做就可以。 只不过这里补充一下

提醒一下, 修改这些文件最好在配置configure命令执行之前做, 可以节省时间。免得再生成一次。 

在cygwin下,根目录是/cygdrive 

如果你的freetype放在了c:\tools\freetype 下 那么命令应该是这样的

./configure --with-freetype=/cygdrive/c/tools/freetype/ --with-target-bits=64 --enable-debug

这里上面博客中提到了两个比较常见的会遇到的问题。 修改方法也是有的。 

补充一下 版本太老的问题 : createjars.gmk  全局搜索 too old 之后, 可以直接修改里面的版本,将上面的1.7. 改成 3.2.0 保存也一样。

 6.编译 make all

在这一步之前, 找到 jkd\make\setup.gmk 

用文本编辑器打开他, 搜索一下 encoding   默认的是ascii  改成utf-8 保存 这样以后你修改代码,加点中文注释啊就不会出现编码问题了。

如果不出意外,编译就会成功。 大约十三分钟。如果在虚拟机里面会更久。

7.如何在自己的项目里引入自己下载编译的jdk 可以参照如下链接

滑动验证页面

注意坑 : 修改了源代码需要重新编译的时候 ,使用命令 make images ,并且不要执行make clean吧。 自己去路径下删除两个文件夹下的所有内容, 就可以了。 重新编译会节省大约4分钟的时间。应该是,记不清了。这俩文件就是openjdk根目录下\build\windows-x86_64-normal-server-fastdebug\jdk 下的objs和demoobjs,将这两个文件夹下的所有文件删除,然后编译通过。否则要么从头编译,清理所有。要么等着报错吧。

这里来了一个更严重的问题。 你打开任务管理器,会看到内存占用升高了,多了大约有4gb左右,而且无法被释放, 而且,你修改了源码后,再次编译jdk ,又增加4gb ,累计增加啊。 这个东西我没想到什么好的办法, 只能重启windows ,然后就释放了。 任务管理器你也看不到谁在占用。 这个如果哪位大哥有办法,可以留言指教小弟一下。 也正是因为如此,我觉得好鸡肋。如此下去,还怎么使用呢。Linux、下没试过。 可能没有这个问题。

2023改↓

云盘链接不知道为什么丢了几个文件,其实这些文件都可以在上述链接找到。过了这么久,我也找不到自己保存的了。

阿里云盘分享

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值