专栏首页大大的微笑深入理解JVM原理之编译openjdk7

深入理解JVM原理之编译openjdk7

Java虚拟机种类很多例如:HotSpot 丶 JRockit 丶 J9等

我们一般用的就是HotSpot,如果我们电脑上装了JDK,可以运行java -version查看相关信息

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

之前想着编译openjdk7,但是试过windows系统,linux系统,各种不如意,尤其是windows系统操作起来比linux更复杂,最后不得不放弃,centos试过,redhat也试过,各种不行 ,简直要吐血,

不过苍天不负有心人,经过一周的不断尝试,终于使用Ubuntu16.04.3搞定.

准备阶段:

①.需要安装的:使用 apt-get install 命令

build-essential 
gawk 
libasound2-dev 
libcups-dev 
libxrender-dev
xorg-dev 
ant(1.7以上)
libxtst-dev
libxi-dev
libxt-dev

②.openjdk7 , jdk6

我使用的jdk6为:jdk-6u45,

③.将CurrencyData.properties文件中的日期一定要改成10年内,

否则在编译过程中会报错从而导致编译失败:

Error: time is more than 10 years from present: 1136059200000

文件位置: 

/usr/openjdk/jdk/src/share/classes/java/util/CurrencyData.properties

开始编译:

①.进入openjdk目录下执行make sanity命令若出现如下提示表示检查通过:

sanity check passed.

②.

执行如下命令:

export LANG=C
export ALT_BOOTDIR="/usr/local/jdk6"
export ALT_JDK_IMPORT_PATH="/usr/local/jdk6"
export BUILD_LANGTOOLS=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true
export SKIP_COMPARE_IMAGES=true
export SKIP_DEBUG_BUILD=false 
export SKIP_FASTDEBUG_BUILD=true 
export DEBUG_NAME=debug
export USE_PRECOMPILED_HEADER=true
export ARCH_DATA_MODEL=64
export HOTSPOT_BUILD_JOB=4
export ALT_PARALLEL_COMPILE_JOBS=4
BUILD_DEPLOY=false
BUILD_INSTALL=false
export ALT_OUTPUTDIR=/usr/local/openjdk/build
export ALLOW_DOWNLOADS=true
unset JAVA_HOME
unset CLASSPATH
make DISABLE_HOTSPOT_OS_VERSION_CHECK=OK

如上命令建议放入到一个可执行文件中

③.静静的等待即可(时间有点漫长,大概三四十分钟左右,你可以选择喝杯咖啡,听首音乐放松一下)

④.可以看到编译开始及结束的时间,恭喜编译通过.

>>>Finished making images @ Tue Dec 12 22:16:37 CST 2017 ...
make[2]: Leaving directory '/usr/local/openjdk/jdk/make'
########################################################################
##### Leaving jdk for target(s) sanity all docs images             #####
########################################################################
##### Build time 00:34:22 jdk for target(s) sanity all docs images #####
########################################################################

#-- Build times ----------
Target debug_build
Start 2017-12-12 21:22:34
End   2017-12-12 22:16:37
00:04:43 corba
00:11:40 hotspot
00:00:49 jaxp
00:01:05 jaxws
00:34:22 jdk
00:01:23 langtools
00:54:03 TOTAL

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java队列,ArrayBlockingQueue

    提供了三个构造方法:    ①.ArrayBlockingQueue(int capacity)//指定长度,默认加锁机制为非公平锁    ②.Array...

    用户1215919
  • 写一个BASIC认证的https协议

    仅供参考,转载请注明出处,谢谢 /**      * BASIC认证的https      * @param urlStr https请求的...

    用户1215919
  • Spring Cloud netflix ribbon源码分析

    用户1215919
  • 申请Let's Encrypt通配符证书

    Let's Encrypt支持通配符证书了,也就是说你只需要为你的网站申请*.example.com这样一个证书,所有的子域名都可以支持,下面介绍下申请方法:

    緣來
  • 利用Python实现Excel的文件间的数据匹配功能

    我们知道Excel有一个match函数,可以做数据匹配。 比如要根据人名获取成绩

    砸漏
  • 一个房地产企业通过Salesforce的转型之旅

    Business Development Director at Salesforce

    臭豆腐
  • ARM处理器:开放者的逆袭

    1980年,英国BBC电视台策划了一系列关于计算机的电视节目。但导演发现一个问题:怎么给没见过电脑的观众画饼? ? 节目之一"Micro Live" 此时,大洋...

    Vamei
  • ARM处理器:开放者的逆袭

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。 

    Vamei
  • ARM处理器:开放者的逆袭

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。 

    Vamei
  • dubbo(一)SPI机制与实现路径

    了解dubbo内核之前,我们先看下dubbo的启动流程,参考了本地启动时日志打印的dubbo启动整理出来的流程图:

    虞大大

扫码关注云+社区

领取腾讯云代金券