前言
花了三天在windows上搞openJDK,对bash本来就不熟,加上各种莫名依赖和脚本里的bug,身心俱疲。最后make all的时候产生一个莫名其妙的错误说什么有warning且-Werror置为了true,死活没google到-Werror是什么鬼,只好作罢了。
今天本菜鸟突然想起来,朕还有Ubuntu虚拟机,权且一试,没想到轻松成功。
平台:Ubuntu Version 5.1.30 (3.2.0-98-generic-pae #138-Ubuntu SMP Mon Jan 11 13:11:12 UTC 2016 i686 i686 i386 GNU/Linux)
步骤1:(按照《深入理解Java虚拟机》中的命令)一键下载依赖
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant
这里写的不一定全,不过暂且先装着,后面如果缺少什么依赖可以再按提示安装,一个佛系程序员的一天就是见招拆招。
openJDK的源代码有C++也有Java,所以需要一个Bootstrap JDK去编译Java的部分。这个JDK通常是比你要编译的openJDK早一个版本的官方JDK,这是官方的README-builds(在第二步中下载下来的源码根目录下)说的:
...The general rule is that the bootstrap JDK must be an instance of the previous major release of the JDK.
每一个版本的README-builds中都会指明这一版的openJDK需要的Bootstrap JDK具体版本,比如openJDK8需要的是JDK7u7以上的版本,但不能是JDK8:
步骤2:下载源码
sudo hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/ cd jdk8u-dev chmod 755 get_source.sh ./get_source.sh
用mercurial下载jdk8u的最新源码。小伙伴如果想下载其它版本的源码可以去这里browse: http://hg.openjdk.java.net/。这个下载过程大约三十分钟。
如果不想用mercurial,也可以在这里下载zip包:http://jdk.java.net/java-se-ri/8 (在网页偏下方RI source code那里):
我在windows上编译是就是用这个zip包解压编译的,最后失败了。出于迷信心理,在Ubuntu上我还是决定用mercurial下载,各路大神尽可不必理会。
步骤3:设置环境变量新建一个setup.sh,把以下的内容拷贝进去:
export LANG=C #BootStrap-JDK的安装路径,替换为自己bootstrap-JDK的路径 export ALT_BOOTDIR=/usr/lib/jvm/java-7-oracle-1.7.0.80 export ALLOW_DOWNLOADS=true export HOTSPOT_BUILD_JOBS=8 export SKIP_COMPARE_IMAGES=true #要编译的内容,读者可以根据需要自行选择 export BUILD_LANGTOOLS=true #export BUILD_JAXWS=false #export BUILD_JAXP=false #export BUILD_CORBA=false export BUILD_HOTSPOT=true export BUILD_JDK=true export SKIP_COMPARE_IMAGES=true BUILD_DEPLOY=false BUILD_INSTALL=false #编译结果存放的路径,建议存放在openjdk源码中build文件夹 export ALT_OUTPUTDIR=/usr/dev/jvm/openjdk/build #这两个环境变量需要去掉,不然会出问题 unset JAVA_HOME unset CLASSPATH
运行
./setup.sh
设置一遍就好。
步骤4:进行编译
到下好的openJDK源码的根目录下运行make,大概需要二三十分钟。本来是应该运行make sanity的,但是我又碰到了这个错误……
妈哟什么鬼,搜了一会无甚结果,于是鸡贼的跳过了这一步直接运行make,竟然成功了,成功后的输出长这样:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 张敬轩王菀之.2006-903.ID.CLUB拉阔演奏厅LIVE.2CD【环球】【WAV+CUE】
- 《欢欣森活》存档方法
- 《炉石传说》2024新赛季上线更新内容问题汇总
- 《南瓜恐慌》进不去游戏解决方法
- 杨烁《杨烁唱唐诗》2024Hi-Res[WAV分轨]
- 杨烁《杨烁唱唐诗》2024Hi-Res[WAV分轨]
- 童丽《民歌童丽(HQCD)》【WAV+CUE】
- 童丽《绝对收藏》2022头版限量编号[WAV+CUE][1G]
- 腾格尔《出走天堂》MQA-UHQCD限量版[低速原抓WAV+CUE][1G]
- 田震《时光音乐会》纯银CD[低速原抓WAV+CUE][1G]
- 炉石传说11月初最强登顶卡组合集 炉石传说11月初登顶卡组分享
- lol炼金龙魂详细属性是什么 2024炼金龙魂详细属性介绍
- 英雄联盟六个龙魂是哪六个 英雄联盟六个龙魂介绍一览
- 《忆蚀》Subliminal:揭秘后室之谜,路知行献声Weplay文化展
- 初始之部制作人气漫画改编游戏《我家大师兄脑子有坑》参展2024WePlay