linux openjdk8编译,在Ubuntu 16.04上编译OpenJDK8的源代码

本文将详细介绍在Ubuntu16.04上对OpenJDK8进行编译。html

一、准备编译环境

使用的操做系统为Ubuntu16.04,若是读者没有安装Ubuntu,能够在Windows上使用虚拟机的方式进行安装,或者能够直接在电脑上安装多系统,这种方式比以虚拟机安装的方式速度要快。Ubuntu操做系统使用的是Linux内核,因为HotSpot是由C++编写的,因此在编译时须要Linux的编译器GCC。java

二、下载源代码

OpenJDK使用的代码管理工具为Mercurial(hg),下载并安装Mercurial后就能够经过hg clone命令获取OpenJDK8的源代码了,相关的命令以下: linux

hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk

cd openjdk

bash ./get_source.sh

使用Mercurial下载时速度相对较慢,能够直接去相关网站上下载压缩包,网址为:http://download.java.net/openjdk/jdk8。笔者下载的压缩包为openjdk-8-src-b132-03_mar_2014.zip,使用以下命令对压缩包进行解压: bash

unzip openjdk-8-src-b132-03_mar_2014.zip

解压后openjdk目录下重要的目录以下表所示。工具

72a892e2b3f0463d942d507c21e3cfbe.png

三、编译源代码

openjdk中的README-builds.html网页提供了编译源代码的相关说明。在Ubuntu操做系统下编译能够分为两步:网站

第一步,生成编译配置的脚本

生成编译配置的脚本使用的命令以下: ui

bash ./configure \

--with-target-bits=64 \

--with-boot-jdk=/usr/java/jdk1.7.0_80/ \

--with-debug-level=slowdebug \

--enable-debug-symbols ZIP_DEBUGINFO_FILES=0

运行这个命令对编译的openjdk所须要的依赖进行检查,若是终止,可根据对应的提示安装相关的依赖。命令行选项--with-target-bits指定编译64位系统的JDK; 命令行选项--with-boot-jdk指定引导JDK所在目录,以防其余安装的JDK影响。构建JDK8须要使用JDK7 Update 7或更高版本的版本做为引导JDK,但不该使用JDK8做为引导JDK;命令行选项--with-debug-level=slowdebug,有这个选项,能够在GDB等代码调试过程当中提供足够的信息;--enable-debug-symbols ZIP_DEBUGINFO_FILES=0生成调试的符号信息,而且不压缩。spa

若是命令运行成功,会在当前目录下生成一个目录,目录的名称是根据要编译的目标肯定的,如笔者Ubuntu 64位操做系统下生成的目录名为linux-x86_64-normal-server-slowdebug。操作系统

第二步,编译

编译使用的命令以下:.net

make all ZIP_DEBUGINFO_FILES=0

若是命令运行成功,则成功编译出了JDK。运行以下命令:

./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -version

输出的信息以下:

openjdk version "1.8.0-internal-debug"

OpenJDK Runtime Environment (build 1.8.0-internal-debug-mazhi_2019_08_12_20_52-b00)

OpenJDK 64-Bit Server VM (build 25.0-b70-debug, mixed mode)

在openjdk下建立一个Test.java源文件,内容以下:

public class Test{

public static void main(String[] args){

System.out.println("Hello World!");

}

}

经过Javac编译器编译如上的源代码,获得Test.class文件。

运行如上的Class文件,命令以下:

./build/linux-x86_64-normal-server-slowdebug/jdk/bin/javac Test.java

./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java Test

输出以下的信息:

Hello World!

关注我的博客www.classloading.com或公众号,有HotSpot源码剖析系列文章!

b09c4960244941df8cd9eefa.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值