现在很多语言都不开发运行环境了,都选择在JRE上运行,足以证明JVM的优越。你精通了JVM,未来的路才可能走得轻松。这篇文章是你走近jvm的第一篇,编译Openjdk8源码

编译环境

  操作系统:Ubuntu16 (ubuntu-16.04.6-desktop-amd64.iso)

  boot jdk:jdk7 (jdk-7u80-linux-x64.tar.gz)

  Openjdk:jdk8 (openjdk-8u40-src-b25-10_feb_2015.zip)

编译前准备

Ubuntu提供两种进入方式,一个是我们平常最熟悉的图形界面形式,还有一种是纯命令行方式

Ctrl + Alt + F6 即可进入纯命令行模式,进入后,需要输入用户名,密码

接着安装vim工具,并用vim打开如下文件

sudo vim /etc/network/interfaces

添加以下内容

修改如下文件,将managed设置为true,如果是只读文件,需要授权(此处不再赘述)

/etc/NetworkManager/NetworkManager.conf

打开如下文件, 添加内容

/etc/resolvconf/resolv.conf.d/base

重启网络服务

service network-manager restart

Ubuntu 更改文件权限及chmod详细用法如下:
一、常用方法如下:(其中×××指文件名)
 (所有者有读和写的权限,组用户只有读的权限)

sudo chmod  ×××

(每个人都有读和写以及执行的权限)

sudo chmod  ××× 

输入以下命令进行安装远程ssh服务

# sudo apt-get install openssh-server

若没有ssh,需要执行

# sudo apt-get install ssh

(设置完静态ip,并用xshell远程连接成功,如下图)

编译流程

1、安装依赖(这步比较慢,耐心等待)

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev ccache

或者

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev

2、安装boot jdk

因为openjdk源码中有些功能是用Java代码实现的,比如调试工具:jps、jstat等,还有一些核心jar包,如rt.jar、tools.jar等,都需要相应版本的JDK。boot jdk需要比你编译的jdk版本低,这里我们用jdk7

直接解压到Documents目录下,然后配置下环境

tar zxvf jdk-7u80-linux-x64.tar.gz 

配置path

vim ~/.bashrc

文件底部加入下面三句话(改成你自己的用户名)

export JAVA_HOME=/home/lusai/Documents/jdk1..0_80
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

让配置的path重新生效

source ~/.bashrc

查看是否安装成功

java -version

3.解压openjdk8 ,

安装 unzip

sudo apt install unzip

进入 openjdk8 的主目录,解压文件

 unzip openjdk-8u40-src-b25-10_feb_2015.zip 

进去解压的文件

cd /home/lusai/Documents/openjdk

执行配置命令,填写Boot jdk的安装目录

sudo bash configure --with-target-bits= --with-boot-jdk=/home/lusai/Documents/jdk1..0_80/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=

如果配置成功,则会显示如下信息:

开始编译(时间较长,请耐心等待)

sudo make all DISABLE_HOTSPOT_OS_VERSION_CHECK=OK ZIP_DEBUGINFO_FILES=

看到下面这个画面就证明编译成功,就可以用了

若在编译过程中,出现以下错误,请不要慌张,这并没有太大问题(网上是这么说的,最后确实也是没太大问题):

查看刚才编译成功的openjdk版本。首先进入 以下目录,

cd /home/lusai/Documents/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin

再执行命令 ./java -version。可得如下结果:

./java -version

至此,Openjdk8编译大功告成

Ubuntu16.04编译Openjdk8,笔者亲测编译成功的更多相关文章

  1. ubuntu16.04下笔记本自带摄像头编译运行PTAM

    ubuntu16.04下笔记本自带摄像头编译运行PTAM 转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147 个人邮箱:feifan ...

  2. office2010安装与破解,笔者亲测可用!!!!!!

    我们首先需要准备office2010安装包与破相应的破解软件.软件包的获取方式:扫码关注[猿成长],,回复 office2010安装,即可获取,下载解压后文件目录结构如下图所示: 打开安装程序文件夹, ...

  3. Navicat Premium 12.0.24安装与激活(亲测已成功激活)

    另请参见:Navicat Premium 12.0.18 / 12.0.24安装与激活 另请参见:Navicat Premium 12安装与激活(亲测已成功激活) 说明: 本主亲自验证过,可以激活! ...

  4. caffe搭建--caffe在invidia+cpu 酷睿2Q9300 + ubuntu16.04.2上面的安装和编译过程

    本文原创,转载请注明出处. ------------------------------------------------分割线-------------------------------- 概要 ...

  5. Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】

    本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...

  6. 达尔稳usb转RJ45的接口转换器(usb2.0接口)在ubuntu16.04中驱动(r8152)编译安装与使用

    淘宝买了usb转RJ45的接口转换器:https://detail.tmall.com/item.htm?id=524808012954&ali_refid=a3_430582_1006:11 ...

  7. 全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测

    一.前言 抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark.为什么使用fiddler?原因如下:1.Wireshark是通用的抓包工具,但是比较庞大,对于只 ...

  8. robotframework日志输出中文乱码以及robotframework常用关键字-笔者亲测

    一.环境说明 python版本:3.7.3 robotframework版本:3.1 robotframwork-ride版本:1.7.4.2 二.问题描述

  9. ubuntu 13.04 163源(亲测可用)

    # deb cdrom:[Ubuntu )]/ trusty main restricted # See http://help.ubuntu.com/community/UpgradeNotes f ...

随机推荐

  1. ICPC 2018 亚洲横滨赛 C Emergency Evacuation(暴力,贪心)

    ICPC 2018 亚洲横滨赛 C Emergency Evacuation 题目大意 你一个车厢和一些人,这些人都坐在座位上,求这些人全部出去的时间最小值 Solution 题目咋说就咋做 直接模拟 ...

  2. sql语句replace函数的使用

    SQL中的替换函数replace()使用 语法 REPLACE ( string_expression , string_pattern , string_replacement ) 参数 strin ...

  3. appium-1-安装

    1.appium安装 网盘地址,下载之后,一路点就可以了 链接:https://pan.baidu.com/s/1-X_ceUWisbuyosjztakKZw  密码:hxeu 系统变量中新增APPI ...

  4. 浅析Python垃圾回收机制!

    Python垃圾回收机制 目录 Python垃圾回收机制 1. 内存泄露 2. Python什么时候启动垃圾回收机制? 2.1 计数引用 2.2 循环引用 问题:引用计数是0是启动垃圾回收的充要条件吗 ...

  5. python---Flask使用教程-加载静态文件

    flask的静态文件,一般放在static目录下,前端页面放在templates下(而且这两个名字是定死的(static,templates)),目录结构如图: 模板(index.html)里加载静态 ...

  6. 【RPA Starter第三课】第一个Uipath项目:HelloWord

    最后是一个小项目,开启使用Uipath.Uipath云平台,Uipath Orchestrator,Uipath Studio,发布项目.怎么启动机器人.都有详细的步骤. Uipath 的账号是通用的 ...

  7. Cyber Security - Palo Alto Security Policies(1)

    Security policies: Enforcing network traffic by configuring rules of what is allowed or denied to co ...

  8. Go Pentester - HTTP CLIENTS(2)

    Building an HTTP Client That Interacts with Shodan Shadon(URL:https://www.shodan.io/)  is the world' ...

  9. oracle 在物理机上添加磁盘操作

    物理机上添加磁盘操作 注意:1)物理机上添加磁盘操作,不涉及到start_udev的动作.2)磁盘分区的操作,需要谨慎进行,核准无误后再操作. (1)查看磁盘名称命名 # su - grid$ sql ...

  10. 网课神器之obs-studio的安装使用

    obs-studio 首先,下载obs-studio安装文件,然后点击安装. 建议安装完后直接跳过配置,然后进入文件-设置-通用-系统托盘-勾选"总是最小化到系统托盘,而不是任务栏" ...