摘要:环境准备我的编译环境的为位系统,双核源码通过代码管理工具下载太慢,这里选择直接下载官网源码包用于执行编译代码中的脚本编译需要一个可用的安装依赖软件命令打开终端,输入以下命令如何找不到软件包,可以先执行以下命令这个命
环境准备
我的编译环境的为Ubuntu 12.04 32位系统,双核
OpenJDK 源码通过 Mercurial 代码管理工具下载太慢,这里选择直接下载官网源码包
Apache Ant用于执行 Java 编译代码中的 Ant 脚本
Bootstrap JDK编译 OpenJDK 需要一个可用的 JDK
安装依赖软件命令打开终端,输入以下命令:
sudo apt-get install build-essential gawk m4 openjdk-6-jdk libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant
如何找不到软件包,可以先执行以下命令:
sudo apt-get update
这个命令将会更新可用软件列表
解压JDK源码将源码解压到 /home/jacend/Download/ 目录下面,大家可以自己选择一个合适的目录
unzip openjdk-7u40-fcs-src-b43-26_aug_2013,zip /home/jacend/Download/
解压后再 /home/jacend/Download/ 下面会出现一个 openjdk 的源码目录,该目录下包括了jdk,hotspot以及一些Java工具的源码
编译 创建一个安放编译结果的目录我会将编译的结果放在 /home/jacend/pgSoft/openjdk_7u4/build
mkdir /home/jacend/pgSoft/openjdk_7u4 cd /home/jacend/pgSoft/openjdk_7u4 mkdir build创建一个运行编译的脚本
我们将在解压的源码包中创建一个 build_open_jdk.sh 的脚本并且赋予执行权限
cd /home/jacend/Download/openjdk/ touch build_open_jdk.sh sudo chmod +x build_open_jdk.sh sudo gedit build_open_jdk.sh
脚本中输入以下内容
#语言选项 export LANG=C ## Bootstarp JDK 的安装路径,也就是我们安装的 openJDk 6 的根目录 export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-i386 #允许自动下载依赖 export ALLOW_DOWNLOADS=true #并行编译的线程数,设置与CPU内核数量一致,我的笔记本为双核CPU,此项可以提高编译速度 export HOTSPOT_BUILD_JOBS=6 export ALT_PARALLEL_COMPILE_JOBS=6 export SKIP_COMPARE_IMAGES=true #使用预编译头文件,不加这个编译会慢很多 export USE_PRECOMPLIED_HEADER=true #要编译的内容 export BUILD_LANGTOOLS=true export BUILD_HOTSPOT=true export BUILD_JDK=true #把它设置为 false 可以避开 javaws 和浏览器插件之类的部分的 build BUILD_DEPLOY=false #把它设置为 false 就不会 build 出安装包,因为安装包中有些奇怪的依赖 #但即便不build出它已经可以得到完成的JDK映像了,所以还是不 build 了 export BUILD_INSTALL=false #编译结果所存在的路径 export ALT_OUTPUTDIR=/home/jacend/pgSoft/openjdk_7u4/build #这两个编译变量必须去掉,不然编译会出问题 unset JAVA_HOME unset CLASSPATH #检查设置是否正确 make sanity make 2>&1 |tee $ALT_OUTPUTDIR/build.log执行脚本
cd /home/jacend/Download/openjdk/ sh ./build_open_jdk.sh编译过程中的错误
列举一下编译过程的错误,供大家参考,大家可以预先处理了再执行编译脚本
error: "__LEAF" redefined [-Werror]
碰到这个错误可以 参考 在这个环境下应该不会报这个错误
JVM_FindClassFromCaller
修改文件:/home/jacend/Download/openjdk/hotspot/make/linux/Makefile 注释掉包含test_gamma字样的所有行即可
Error: time is more than 10 years from present: 1104530400000
进入解压后openJDk目录,找到CurencyData.properties,将所有涉及到时间修改为10年之内的时间,例如将2004-01-13-20-00-00 修改成 2016-01-13-20-00-00
cd /home/jacend/Downloads/openjdk/jdk/src/share/classes/java/util sudo gedit CurrencyData.properties
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/15306.html
摘要:环境准备我的编译环境的为位系统,双核源码通过代码管理工具下载太慢,这里选择直接下载官网源码包用于执行编译代码中的脚本编译需要一个可用的安装依赖软件命令打开终端,输入以下命令如何找不到软件包,可以先执行以下命令这个命 环境准备 我的编译环境的为Ubuntu 12.04 32位系统,双核 OpenJDK 源码 通过 Mercurial 代码管理工具下载太慢,这里选择直接下载官网源码包 Ap...
摘要:去官网下载,根据自己的系统自行选择,我下载的是创建安装目录解压缩文件包配置系统环境变量在文件最下端添加以下内容关闭终端,重新打开,输入以下命令然后输入然后就会看到选择官方提供的,输入。在终端中输入显示的是官方的信息,大工告成 去官网下载JDK,根据自己的系统自行选择,我下载的是jdk-7u25-linux-x64.tar.gz 创建安装目录:sudo mkdir /usr/lib/java7...
摘要:本部分主要包含的安装教程支持的平台平台弃用位版本版本改变开始位二进制版弃用并且在以后的版本中将在不可用版本改变在位平台上不再为提供商业支持和参阅平台支持此外位版本的有以下限制位版本不支持存储引擎位编译默认禁用日志记录因为日志记录会进一步限 本部分主要包含 MongoDB 的安装教程. 支持的平台 平台 3.2 3.0 2.6 2.4 2.2 Amazon Linux ✓ ✓ ...
摘要:如果你曾想过要用建立个分享的话,你应该了解到,直接通过右上角的网络管理新建的很多安卓设备没法识别。参考安装配置启动错误解决方案创建分享 如果你曾想过要用12.04建立个wifi分享的话, 你应该了解到, 直接通过右上角的网络管理新建的ad-hoc很多安卓设备没法识别。 所以你需要一款名为ap-hotspot的软件协助 1.安装: sudo add-apt-repository ppa...
摘要:编译后在目录生成固件在路径下包含了等文件,通过查看编译信息可知,最终是通过命令和命令等将和合并成固件烧写由于支持协议,可在上安装服务器,当启动后在串口调试终端上选择以协议方式烧写内核和文件系统。 前言 Linux是一套免费使用和自由传播的操作系统,作为一套操作系统,Linux由内核和系统调用接口组成,除了有效地控制硬件资源外,同时提供系统调用接口给应用程序使用。但说到Linux其实有L...
阅读 2858·2021-10-27 14:15
阅读 3826·2021-10-11 10:56
阅读 2743·2021-09-07 10:18
阅读 1169·2019-08-30 15:53
阅读 1382·2019-08-27 14:26
阅读 1449·2019-08-26 18:18
阅读 3206·2019-08-26 12:15
阅读 3308·2019-08-26 10:43