美文网首页java jvm
JVM之CentOS7编译openjdk1.7

JVM之CentOS7编译openjdk1.7

作者: heyong | 来源:发表于2017-10-31 09:56 被阅读55次

1、环境已经相关资源准备

很多人再使用Ubuntu来编译OpenJDK,当时我也尝试了一下,但是编译过程中遇到各种软件安装的问题,所有我使用的是CentOS7,在编译之前,需要准备相关的资料:

  1. JDK1.7源码链接:http://pan.baidu.com/s/1dFyCUYl 密码:ds8z
  2. JDK1.6安装包链接:http://pan.baidu.com/s/1o8MbmNS 密码:vp8j

注意:需要使用低版本的JDK编译高版本的openjdk

2、软件安装

1、yum install alsa-lib-devel

2、yum install cups-devel

3、yum install libX*

4、yum install gcc gcc-c++

5、yum search libc++

6、yum install libstdc++-static

7、yum -y install ant

3、解压源码,配置脚本

  1. 切换到 root 用户,我是将openjdk源码解压到 /opt 目录下,然后安装 jdk1.6 。
  2. 编写编译的脚本

vim ~/.bashrc

脚本内容入下(关于脚本可以参考《深入理解Java虚拟机规范》):

unset CLASSPATH //JAVA_HOME和CLASSPATH在编译前需要取消
unset JAVA_HOME
//设定语言选项
export LANG=C
//设置jdk1.6的路径
export ALT_BOOTDIR=/usr/java/jdk1.6.0_45
export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_45
//允许自动下载
export ALLOW_DOWNLOADS=true
//并发线程数,和cpu内核数相同
export HOTSPOT_BUILD_JOBS=1
export ALT_PARALLEL_COMPILE_JOBS=1
export SKIP_COMPARE_IMAGES=false
//使用预编译头
export USE_PRECOMPILED_HEADER=true
//需要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=false
export BUILD_CORBA=false
export BUILD_JAXWS=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true
//设置
BUILD_DEPLOY=false
BUILD_INSTALL=false
//编译的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=false
export DEBUG_NAME=debug
//编译结果存放的路径
export ALT_OUTPUTDIR /home/holmes/openjdk/bulid

执行命令行:

source ~/.bashrc

在进入到 /opt/openjdk 目录下,执行make sanity 检查,如果没有问题,执行make all 编译openjdk。

4、编译问题解决

当时在编译的时候,遇到了下面问题:

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

遇到该问题,需要修改下面文件:

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

将里面得日期修改为10年之内就OK。

5、参考链接

CentOS7下编译openjdk:http://blog.csdn.net/zitong_ccnu/article/details/50149757

6、自我介绍

我是何勇,现在重庆猪八戒,多学学!!!

相关文章

  • JVM之CentOS7编译openjdk1.7

    1、环境已经相关资源准备 很多人再使用Ubuntu来编译OpenJDK,当时我也尝试了一下,但是编译过程中遇到各种...

  • JVM之编译

    什么是编译? 程序员写完代码是.java文件,我们的机器是不认识的。需要通过JVM把字节码翻译成机器语言,而不同平...

  • JAVA资深工程师成长-技能框架(2) -JVM原理

    目录 JVM虚拟机模型 程序它的执行流程 JVM基本结构与内存空间 一次编译,到处运行 java程序经过一次编译之...

  • synchronzied偏向锁的批量重偏向与撤销

    JVM在编译synchronzied时,会编译成monitorenter monitorexit指令,是一种JVM...

  • 机器码示例

    JVM语言无关性的基础是编译器--不同语言,通过不同的编译器,都编译为字节码。JVM平台无关性的基础是JVM--相...

  • boot jdk 1.6编译openjdk1.7

    环境:CentOs 7 64 位计划编译的JDK版本:openjdk-7Boot JDK,即现有的JDK版本:jd...

  • CentOS7下编译FFMPEG源代码

    一、CentOs7下编译FFMpeg相关资料 找到一篇关于在CentOS7下编译FFMPEG源代码的文章,地址为:...

  • Java 虚拟机内存模型—线程私有

    JVM 内存模型 .java 源文件 -> javac 工具编译 -> .class 文件 -> JVM 解析 -...

  • JVM了解

    java程序运行流程草图 说明:.java编译成面向jvm的class文件,供jvm解释执行 JVM结构 JVM的...

  • JVM

    java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过J...

网友评论

    本文标题:JVM之CentOS7编译openjdk1.7

    本文链接:https://www.haomeiwen.com/subject/ynhmpxtx.html