一、整体编译

我的环境:

Ubuntu 16.04 LTS

apache-ant-1.8.0-bin.zip

环境变量:

export LANG=C
export ALT_BOOTDIR=/home/wangx/warehouse/jdk1..0_80
export ALLOW_DOWNLOADS=true
export HOTSPOT_BUILD_JOBS=
export ALT_PARALLEL_COMPILE_JOBS=
export SKIP_COMPARE_IMAGES=true
export USE_PRECOMPILED_HEADER=true
export BUILD_LANGTOOLS=true
#export BUILD_JAXP=false
#export BUILD_JAXWS=false
#export BUILD_CORBA=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true
#export SKIP_DEBUG_BUILD=false
#export SKIP_FASTDEBUG_BUILD=true
#export DEBUG_NAME=debug
BUILD_DEPLOY=false
BUILD_INSTALL=false
export ALT_OUTPUTDIR=/home/wangx/warehouse/openjdk7src
unset JAVA_HOME
unset CLASSPATH

获取jdk8u源代码

sudo hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev
bash ./get_source.sh

准备编译

sudo bash configure --with-boot-jdk=/home/wangx/warehouse/jdk1..0_80

开始编译,由于我已经编译过了,所以下面的回显显得很简单

wangx@wangx-VirtualBox:~/warehouse/jdk8u-dev$ sudo make
Building OpenJDK for target 'default' in configuration 'linux-x86_64-normal-server-release' ## Starting langtools
## Finished langtools (build time ::) ## Starting hotspot
## Finished hotspot (build time ::) ## Starting corba
## Finished corba (build time ::) ## Starting jaxp
## Finished jaxp (build time ::) ## Starting jaxws
## Finished jaxws (build time ::) ## Starting jdk
## Finished jdk (build time ::) ----- Build times -------
Start -- ::
End -- ::
:: corba
:: hotspot
:: jaxp
:: jaxws
:: jdk
:: langtools
:: TOTAL
-------------------------
Finished building OpenJDK for target 'default'

我编译后生成的结果位于:/home/wangx/warehouse/jdk8u-dev/build/linux-x86_64-normal-server-releas/

二、只编译HOTSPOT虚拟机

cd hotspot/make/
make >& | tee ./hotspot_debug.log

sys/cdefs.h no such file or directory  则sudo apt-get install g++-multilib

bits/c++config.h: No such file or directory  则sudo apt-get install gcc-4.7-multilib g++-4.7-multilib

编译输出目录为

/home/wangx/jdkresearch/jdksource/jdk8u-dev/hotspot/build/linux/linux_i486_compiler2/product

三、在eclipse中调试hotspot

1.下载eclipse CDT  也就是eclipse 支持 C/C++的版本

2.new->Makefile Project with Existing Code

3

4.项目配置,右键properties

5.Project->Build Project

OPENJDK 源码编译的更多相关文章

  1. 第一篇: openJDK源码编译安装--mac版本

    1.为什么要编译JDK 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛高一点,但肯定比阅读各种书籍,文章,博客 ...

  2. 编译自己的jdk(使用openJDK源码编译jdk )

    找到openjdk网站(http://hg.openjdk.java.net/) 选择需要编译的版本,浏览readme文件,有获取源码及编译步骤 CentOS-7-x86_64-DVD-1804.is ...

  3. 转-OpenJDK源码阅读导航跟编译

    OpenJDK源码阅读导航 OpenJDK源码阅读导航 博客分类: Virtual Machine HotSpot VM Java OpenJDK openjdk 这是链接帖.主体内容都在各链接中.  ...

  4. 走进JVM之一 自己编译openjdk源码

    想要深入了解JVM,就必须了解其实现机制.了解JVM实现的最好方法便是自己动手编译JDK.好了,让我们开始吧! 1.  准备工作 获取OpenJDK源码 本次编译选择的是OpenJDK7u,官方源码包 ...

  5. OpenJDK源码研究笔记(十一):浅析Javac编译过程中的抽象语法树(IfElse,While,Switch等语句的抽象和封装)

    浅析OpenJDK源码编译器Javac的语法树包com.sun.source.tree. 抽象语法树,是编译原理中的经典问题,有点难,本文只是随便写写. 0.赋值语句 public interface ...

  6. OpenJDK源码研究笔记(十三):Javac编译过程中的上下文容器(Context)、单例(Singleton)和延迟创建(LazyCreation)3种模式

    在阅读Javac源码的过程中,发现一个上下文对象Context. 这个对象用来确保一次编译过程中的用到的类都只有一个实例,即实现我们经常提到的"单例模式". 今天,特意对这个上下文 ...

  7. 源码编译OpenJdk 8,Netbeans调试Java原子类在JVM中的实现(Ubuntu 16.04)

    一.前言 前一阵子比较好奇,想看到底层(虚拟机.汇编)怎么实现的java 并发那块. volatile是在汇编里加了lock前缀,因为volatile可以通过查看JIT编译器的汇编代码来看. 但是原子 ...

  8. Hadoop,HBase,Zookeeper源码编译并导入eclipse

    基本理念:尽可能的参考官方英文文档 Hadoop:  http://wiki.apache.org/hadoop/FrontPage HBase:  http://hbase.apache.org/b ...

  9. Ubantu16.04进行Android 8.0源码编译

    参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...

随机推荐

  1. Codeforces 526D Om Nom and Necklace (KMP)

    http://codeforces.com/problemset/problem/526/D 题意 给定一个串 T,对它的每一个前缀能否写成 A+B+A+B+...+B+A+B+A+B+...+B+A ...

  2. VS2015(Xamarin)开发安卓WebApp笔记

    有关WebApp的开发,大多数人都用了第三方框架,如Cordova等.我这里没有用到这类框架,而是新建了一个WebView嵌入Assets(本地资源)来完成这个App,由于第一个练习App希望对初学者 ...

  3. jQuery - ajaxUpLoad.js

    ajaxFileUpload是一个异步上传文件的jQuery插件 语法:$.ajaxFileUpload([options]) options参数说明: 参数 作用 url 上传处理程序地址 file ...

  4. mysql 案例~mysql元数据的sql统计

    一 简介:今天我们来收集下提取元数据的sql 二 前沿: information_schema  引擎 memory 元数据收集表 三 sql语句: 1#没有使用索引的表统计 SELECT t.TAB ...

  5. Django学习手册 - 模板继承与导入

    核心: PS:一个页面只能继承一个模板. 前置: 配置url. 配置views 关键字: 1. {% extends "index模板.html" %} 声明继承于哪个模板 ,关联 ...

  6. oracle修改日期格式

    查看默认的日期格式 select * from v$nls_parameters; 更改 alter session | system (范围) set xxxx=“yyyy-mm-dd” ;

  7. 如何用MoveIt快速搭建机器人运动规划平台?

    MoveIt = RobotGo,翻译成中文就是“机器人,走你!”所以,MoveIt的主要就是一款致力于让机器人能够自主运动及其相关技术的软件,它的所有模块都是围绕着运动规划的实现而设计的. 两个月前 ...

  8. CodeForces Contest #1137: Round #545 (Div. 1)

    比赛传送门:CF #1137. 比赛记录:点我. 每次都自闭的 div1 啊,什么时候才能上 IM 呢. [A]Skyscrapers 题意简述: 有一个 \(n\times m\) 的矩阵 \(a_ ...

  9. 详解Jquery选择器

    1.常见的选择器 id,类,标签选择器. $("#a1") $(".myclass") $("div") 2.组合选择器 $("# ...

  10. NSIS程序安装包制作

    nsis下载地址:http://www.pc6.com/softview/SoftView_14342.html nsis使用: 启动NSIS程序主界面,选择"可视化脚本编辑器(VNISEd ...