美文网首页
Ubuntu16.04虚拟机编译openJDK9

Ubuntu16.04虚拟机编译openJDK9

作者: 会飞的毯子 | 来源:发表于2018-01-29 14:02 被阅读0次
    • 环境准备

    配置虚拟机环境在此就不在多说,相信各位肯定都会,但有一个坑:虚拟机的内存必须设置的大一点(至少设置为2G,不然编译的时候会报错)。我的虚拟机配置如下:


    虚拟机配置

    如果虚拟机准备好了,那么就进行下一步。

    • OpenJDK下载

    获取JDK有两种方式,先说简单的吧:

    1、github

    直接使用Github上的源代码镜像
    $ git clone https://github.com/dmlloyd/openjdk

    2、通过Mercurial代码管理工具下载

    首先下载Mercurial管理工具,运行:
    $ apt-get install mercurial
    然后去OpenJDK官网:OpenJDK Mercurial Repositories
    找到如下:

    要下载的JDK
    记住地址,随后执行:
    $ hg clone http://hg.openjdk.java.net/jdk9/jdk9/
    下载完成后,进入下载的文件夹,里面有一个get_source.sh
    赋予可执行权限并执行
    $ chmod +x get_source.sh 
    $ ./get_source.sh
    

    耐心等待,下载完成的文件夹长这样


    下载完成的文件
    • 构建

    configue

    在构建之前建议仔细阅读源代码目录下的 README-builds.html or README-builds.md 文件
    在阅读的过程中发现编译JDK需要指定一个Bootstrap JDK,因为OpenJDK的各个组成部分有的是用C++编写的,更多的代码则是使用Java自身实现的。所以需要去JDK官网下载一份JDK:Java SE - Downloads | Oracle Technology Network | Oracle
    下载并解压完成后不建议指定JAVA_HOMECLASSPATH,
    如果设置了环境变量,可以取消:

    unset JAVA_HOME
    unset CLASSPATH
    

    回到OpenJDK目录下,执行:

    $ chmod +x configure
    $ sudo ./configure --with-boot-jdk=解压后的oracleJDK路径
    

    在执行过程中会报缺少环境的错误,按照系统给出的提示进行安装就好
    configure完成后会输出:

    Configuration summary:
    * Debug level:    release
    * HS debug level: product
    * JDK variant:    normal
    * JVM variants:   server
    * OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
    * Version string: 10-internal+0-adhoc.root.openjdk (10-internal)
    
    Tools summary:
    * Boot JDK:       java version "9.0.4" Java(TM) SE Runtime Environment (build 9.0.4+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)  
    * Toolchain:      gcc (GNU Compiler Collection)
    * C Compiler:     Version 5.4.0 (at /usr/bin/gcc)
    * C++ Compiler:   Version 5.4.0 (at /usr/bin/g++)
    
    Build performance summary:
    * Cores to use:   1
    * Memory limit:   1970 MB
    
    make

    随后执行make
    耐心等待后将输出:

    Finished building target 'default (exploded-image)' in configuration 
    'linux-x86_64-normal-server-release'
    

    此时在OpenJDK的目录下的build子目录下将产生一个linux-x86_64-normal-server-release文件夹

    验证

    进入到生成的文件夹下的jdk/bin目录下,执行./java -version
    将输出

    openjdk version "10-internal" 2018-03-20
    OpenJDK Runtime Environment (build 10-internal+0-adhoc.root.openjdk)
    OpenJDK 64-Bit Server VM (build 10-internal+0-adhoc.root.openjdk, mixed mode)
    

    至此说明我们编译JDK成功。

    相关文章

      网友评论

          本文标题:Ubuntu16.04虚拟机编译openJDK9

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