Ubuntu编译openjdk
来源:互联网 发布:程序员需要掌握的知识 编辑:程序博客网 时间:2024/06/14 20:52
最近看深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)想自己实践下编译一个openjdk出来,但是照着操作很多次还是没成功,里面有些编译方法应该是过时了吧,于是自己查了些资料,实验了下。现在分享给大家
一、下载openjdk源码和搭建环境
1、下载openjdk源码我下载的是openjdk8的:
hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8cd openjdk8bash get_source.sh我这里是直接用的Mercurial代码版本管理工具拉下了的,如果没有安装要先安装才能用hg
2、下载一个openjdk或者是我们平时写代码用的jdk作为bootstrap JDK(注意:需要使用JDK 7及之后版本)
sudo apt install openjdk-8-jdksudo apt build-dep openjdk-8-jdk
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
二、安装
1、编写一个shell脚本在openjdk8文件夹下运行
build.sh
# 不生成文档,节约时间。export NO_DOCS=truesh ./configuremake all
然后运行这个脚本,如果编译成功了可以看到如下图:
然后到/home/zzq/software/openjdk8/build/linux-x86_64-normal-server-release/images/j2sdk-image(相对路径是build/linux-x86_64-normal-server-release/images/j2sdk-image)目录试试用命令看看
已经看可以看到版本了那就成功了。
三、常见的编译 时的错误
1、This OS is not supported 不支持当前系统
hotspot/make/linux/Makefile文件修改第228行vi hotspot/make/linux/Makefile# line 228. ubuntu 16.04 using kernel 4.x.SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
修改Make参数语法。
vi hotspot/make/linux/makefiles/adjust-mflags.sh# line 67. (新版本make语法有变动) s/ -\([^ I][^ ]*\)j/ -\1 -j/
2、出现undefine symbols错误
将 hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp 中的template <class T> void write_ref_array_pre_work(T* dst, int count)方法,提升到对应的头文件g1SATBCardTableModRefBS.hpp中。# 模板函数定义需要出现在头文件中,以便编译器为其生成特化版本。若无此修改,运行编译后的java程序,将出现undefine symbols错误
我只出现过第一个错误。
阅读全文
0 0
- Ubuntu 下编译 openJDK
- Ubuntu编译openjdk
- Ubuntu 下编译OpenJDK,OpenJDk debug,OpenJDk fastdebug
- ubuntu下编译openJdk - 6
- Ubuntu kylin 14.04编译OpenJDK
- ubuntu 编译 openjdk - open jdk
- Ubuntu Server 16 编译OpenJDK
- Ubuntu 12.10中编译OpenJDK 7
- Ubuntu 14.04 编译 openjdk-7u40
- Ubuntu 14.04 64 bit 编译 openjdk 7
- Ubuntu 12.04 下编译OpenJDK 7问题
- linux(Ubuntu)下编译openJDK
- ubuntu 16.04 编译openjdk之坑
- ubuntu 编译android 源码时Openjdk 问题
- 编译OpenJDK
- 编译openjdk
- openjdk编译
- 编译openjdk
- iframe的使用
- Spring Bean的自动装配和资源管理
- Ubuntu忘记用户登录密码以及管理员密码,请来这里帮你找回。
- 一个关于javaweb项目名处出现红叉,而项目下的目录和文件没有红叉的问题
- DPDK 收发包处理流程(二)(网卡初始化)
- Ubuntu编译openjdk
- 60,000毫秒内对Linux的性能诊断
- 二叉树面试题总汇
- Hadoop环境搭建
- K
- C++:指针、引用和CONST
- Android面试题目之常见的选择题
- 安卓Binder解析
- HTML5本地存储来注册登录