Mac 系统为例
openjdk_7u
1 获取JDK源代码
1 | https://download.java.net/openjdk/jdk7/ |
2 进行编译
1 | # 设定语言,否则会出现HashTable内的空指针异常 |
openjdk_9
1 准备
1 | # 安装ccache |
2 下载
3 configure
1 | 在源码顶层目录上执行 |
修改
打开hotspot目录中的src/share/vm/memory/virtualspace.cpp 搜索其中if (base() > 0) {改为if (base() != NULL) {
src/share/vm/opto/lcm.cpp 搜索其中if (Universe::narrow_oop_base() > 0) { 改为 if (Universe::narrow_oop_base() != NULL) {
src/share/vm/opto/loopPredicate.cpp 搜索其中assert(rng->Opcode() == Op_LoadRange || _igvn.type(rng)->is_int() >= 0, “must be”); 改为 assert(rng->Opcode() == Op_LoadRange || iff->is_RangeCheck() || _igvn.type(rng)->is_int()->_lo >= 0, “must be”);
运行make
1 | Run make |
