openjdk8最新源码编译及使用(ubuntu16.04)
来源:互联网 发布:windows上搭建hadoop 编辑:程序博客网 时间:2024/06/05 13:22
1、准备环境
sudo apt-get install -y build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev ccache gawk m4 openjdk-7-jdk libasound2-dev libxrender-dev xorg-dev xutils-dev binutils libmotif-dev ant
如果不能安装的可以先去掉,保证其它模块安装完成。
2、下载源码:
1)下载源码需要使用到hg安装命令:
sudo apt-get install mercurial
官网下载最新源码(速度比较慢,需要几小时不等):
hg clone http://hg.openjdk.java.net/jdk8u jdk8u
更新源码
cd jdk8u_x64_25.71-b00## 执行权限sudo chmod 755 get_source.sh## 更新./get_source.sh
2)在csdn下载当前最新源码(推荐):
http://download.csdn.net/detail/love254443233/9915397
下载后目录/文件夹重命名为:jdk8u_x64_25.71-b00
3、编写编译脚本build.sh(这是最快的方式)放在源码根目录:
# 语言选项,这个必须设置,否则编译好后会出现一个HashTable的NPE错export LANG=C# Bootstrap JDK的安装路径。必须设置。 指向本地jdk的目录。需要比当前版本低,如当前编译版本是jdk8只能配置成jdk7# jdk6/jdk7 的安装可参考:http://blog.csdn.net/love254443233/article/details/8807600export ALT_BOOTDIR=/opt/java/jdk1.7.0_79/export ALT_JDK_IMPORT_PATH=/opt/java/jdk1.7.0_79/# 允许自动下载依赖export ALLOW_DOWNLOADS=true# 并行编译的线程数,设置为和CPU内核(处理器)数量一致即可export HOTSPOT_BUILD_JOBS=4export ALT_PARALLEL_COMPILE_JOBS=4# 比较本次build出来的映像与先前版本的差异。这个对我们来说没有意义,必须设置为false,否则sanity检查会报缺少先前版本JDK的映像。如果有设置dev或者DEV_ONLY=true的话这个不显式设置也行。 export SKIP_COMPARE_IMAGES=true# 使用预编译头文件,不加这个编译会更慢一些export USE_PRECOMPILED_HEADER=true# 要编译的内容,如果想减少编译时间,可以选择性编译,如把JAXP CORBA CORBA 这3项注释掉export BUILD_LANGTOOLS=true export BUILD_JAXP=trueexport BUILD_JAXWS=true export BUILD_CORBA=trueexport BUILD_HOTSPOT=true export BUILD_JDK=trueexport DISABLE_HOTSPOT_OS_VERSION_CHECK=ok# 要编译的版本#export SKIP_DEBUG_BUILD=false#export SKIP_FASTDEBUG_BUILD=true#export DEBUG_NAME=debug# 把它设置为false可以避开javaws和浏览器Java插件之类的部分的build。 BUILD_DEPLOY=false# 把它设置为false就不会build出安装包。因为安装包里有些奇怪的依赖,但即便不build出它也已经能得到完整的JDK映像,所以还是别build它好了。BUILD_INSTALL=false# 编译结果所存放的路径export ALT_OUTPUTDIR=./build/#这两个环境变量必须去掉,不然会有很诡异的事情发生(我没有具体查过这些“”诡异的事情”,Makefile脚本检查到有这2个变量就会提示警告“)unset JAVA_HOMEunset CLASSPATH# 清理原来编译的make cleanmake dist-cleanbash ./configure --with-target-bits=64 --with-debug-level=slowdebug --with-boot-jdk=/opt/java/jdk1.7.0_79/#make sanitymake all ZIP_DEBUGINFO_FILES=0 2>&1 -d | tee build.log##cd test && make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all
4、编译
1)执行编译脚本:
cd jdk8u_x64_25.71-b00./build.sh
若在编译时提示缺少包,则使用提示中的命令安装即可,如:
sudo apt-get install package_name
2)结果:
----- Build times -------Start 2017-07-30 12:39:29End 2017-07-30 13:18:3200:03:53 corba00:00:24 demos00:02:30 docs00:07:11 hotspot00:02:17 images00:03:26 jaxp00:05:15 jaxws00:13:05 jdk00:00:37 langtools00:00:24 nashorn00:39:03 TOTAL
编译好的文件在放
jdk8u_x64_25.71-b00/build/linux-x86_64-normal-server-slowdebug
验证
jdk8u_x64_25.71-b00/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -version openjdk version "1.8.0-internal-debug" OpenJDK Runtime Environment (build 1.8.0-internal-debug-lyh_2017_07_30_12_39-b00) OpenJDK 64-Bit Server VM (build 25.71-b00-debug, mixed mode)
5、ide中使用编译好的jdk,classpath添加如下2个路径
jdk8u_x64_25.71-b00/build/linux-x86_64-normal-server-slowdebug/jdk/classes/jdk8u_x64_25.71-b00/build/linux-x86_64-normal-server-slowdebug/jdk/classes_security/
ide中使用jdk的源码路径
jdk8u_x64_25.71-b00/jdk/src/share/classes/
注:如果在ide中使用src.zip,调试时会找不到部分package源码,如sun.misc.*
jdk8u_x64_25.71-b00/build/linux-x86_64-normal-server-slowdebug/images/src.zip
阅读全文
1 0
- openjdk8最新源码编译及使用(ubuntu16.04)
- 在Ubuntu16.04下编译OPENJDK8
- ubuntu编译并调试OpenJDK8源码实践
- win7下安装Ubuntu16.04及android源码下载,编译
- 编译openjdk8
- 编译openjdk8
- 使用Ubuntu16下载编译Android6.0源码
- linux(ubuntu16.04) /windows10+Flann编译及使用
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 修改,编译,GDB调试openjdk8源码(docker环境下)
- pjsip使用最新源码编译 for android
- pjsip使用最新源码编译 for android
- pjsip使用最新源码编译 for android
- Ubuntu16.04 LTS 编译Android6.0.1源码
- C语言:使用malloc()和calloc()动态分配内存
- 关于[Ctrl]-c 按键 不是复制!!
- UNIX网络编程阅读建议
- JSP页面EL表达式double保留小数点后几位
- this关键字的理解。
- openjdk8最新源码编译及使用(ubuntu16.04)
- Linux运维学习笔记之六:Linux中的文件类型、属性、正则表达式、权限体系
- python学习之路-基础篇-day01
- React 实践项目 (五)
- git 提交的代码被删除
- openstack搭建--3--控制节点安装配置keystone
- OpenCV学习之图像平滑
- ORA-12012: error on auto execute of job "SYS"."BSLN_MAINTAIN_STATS_JOB" ORA-01950: no privileges on
- 事务