安装虚拟机什么的可以在网上找一堆资料,我这里用的是vm ware12.5.7 build-5813279。
然后jdk源码下载、编译什么的大致上可以参考以下文章:
但是这里用的是14跟16有点区别,
首先构建编译环境的时候会出现
Package 'libmotif3' has no installation candidate 错误
这个可以忽略掉,然而另一个错误是
echo "*** This OS is not supported:" `uname -a`; exit 1;
*** This OS is not supported: Linux bcc66964b45e 4.9.27-moby #1 SMP Thu May 11 04:01:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux.
/root/java/openjdk/hotspot/make/linux/Makefile:240: recipe for target ‘;’ failed
根据下面这篇文章来改就ok了
重新执行build.sh就ok了,大约四十分钟后,出现结果如下:
进入build目录下的j2sdk-image目录有:
根据深入理解java虚拟机:JVM高级特性与最佳实践这本书来启动虚拟机,发现出错:
./gamma: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
根据以下文章改就行了:
设置JAVA_HOME为编译好的jdk
export JAVA_HOME=/home/lan/workspace/jvm/build/j2sdk-image/
再运行./gamma -version,出现:
Using java runtime at: /home/lan/workspace/jvm/build/j2sdk-image//jre
Warning: Cannot open log file: hotspot.log
Warning: Forcing option -XX:LogFile=/tmp/hs_pid3573.log
openjdk version "1.7.0-internal-debug"
OpenJDK Runtime Environment (build 1.7.0-internal-debug-root_2017_10_08_20_05-b00)
OpenJDK 64-Bit Server VM (build 24.0-b56-jvmg, mixed mode)
大功告成。