Linux 下编译自己的 OpenJDK7 包括JVM和JDK API
- 1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包
- 2. 简要介绍下OpenJDK7中的目录
- hotspot: 放有OpenJDK Hotspot Virtual Machine 的源代码和make文件
- langtools: 放有OpenJDK 的javac 等工具的源代码和make文件
- cobra: 放有OpenJDK Cobra 的源代码和make文件
- jaxws: 放有OpenJDK JAXWS 的相关信息和make文件, 具体的源代码再编译时会下载
- jaxp: 放有OpenJDK JAXP 相关信息和make文件,具体的源代码再编译时会下载
- jdk: 放有OpenJDK runtime libraries 的源代码和make文件
- 直接OpenJDK 目录下有整个OpenJDK 的make文件
- 3. 检查系统的工具版本,以下配置基于OpenJDK7
- 3.1 GNU make 3.81或更高版本
- 3.2 ANT 1.7.1或更高版本
- 3.3 Sun 的BootstrapJDK6 update14或更高版本(虽然有些奇怪,但是因为编译这些Java代码需要一个可用的JDK)
- 3.4 GNU gcc 4.3或更高版本
- 3.5 ZIP 2.2或更高版本
- 3.6 FreeType 2.3或更高版本 (下载地址http://download.savannah.gnu.org/releases/freetype/ ,下载后解压)
- 3.7 Advanced Linux Sound Architecture(ALSA) 0.9.1或更高版本(下载地址http://www.alsa-project.org/main/index.php/Download)
- 4. 如果怕麻烦可以使用相关命令来安装依赖包
- Fedora: yum-builddep java-1.6.0-openjdk
- Debian: aptitude build-dep openjdk-6
- Ubuntu: sudo aptitude build-dep openjdk-6
- 其它具体的可以参考OpenJDK中的README-builds.html
- 5. 环境工具设置好后了运行以下命令以设置或取消环境变量
- export LANG=C
- export ALT_BOOTDIR=/usr/java/jdk1.6.0_30/
- export ALLOW_DOWNLOADS=true
- export USE_PRECOMPILED_HEADER=true
- export SKIP_DEBUG_BUILD=false
- export SKIP_FASTDEBUG_BUILD=true
- export DEBUG_NAME=debug
- unset CLASSPATH
- unset JAVA_HOME
- 6. 到OpenJDK目录下运行 make sanity 进行检测 如果输出如下证明OpenJDK 编译环境检测没有问题
- PREVIOUS_RELEASE_IMAGE =
- ALT_PREVIOUS_RELEASE_IMAGE =
- Sanity check passed.
- 如果是下面这样证明 环境依然有问题, 按照提示的WARNING 和 ERROR进行修改 直到检测通过
- ERROR: Your JAVA_HOME environment variable is set. This will
- most likely cause the build to fail. Please unset it
- and start your build again.
- Exiting because of the above error(s).
- make: *** [post-sanity] Error 1
- 7. 检测通过了在OpenJDK目录下运行
- make clean
- make
- 8. 注意事项
- 8.1 保持所有命令是在同一个用户下运行的而且这个用户么还有JAVA_HOME 等环境变量
- 这样编译程序才能正确的找到环境变量和不会有权限冲突
- 8.2 OpenJDK 编译可能需要些时间,不要慌张
- 8.3 要有ALLOW_DOWNLOADS=true。否则编译jaxp的时候会出错,因为jaxp的源代码是临时下载的
- 8.3 OpenJDK 目录下的README-builds.html网页文档可以提供很多帮助.
- 9. 编译完成
- -- Build times ----------
- Target debug_build
- Start 2012-02-18 21:09:17
- End 2012-02-18 21:54:06
- 00:01:04 corba
- 00:20:53 hotspot
- 00:03:57 jaxp
- 00:04:14 jaxws
- 00:14:15 jdk
- 00:00:26 langtools
- 00:44:49 TOTAL
- 在OpenJDK目录下有个build文件夹是编译的output文件夹
- azrael@ubuntu:~/Tech/openjdk$ cd build/
- azrael@ubuntu:~/Tech/openjdk/build$ ll
- total 16
- drwxr-xr-x 4 azrael azrael 4096 Feb 18 20:37 ./
- drwxr-xr-x 12 azrael azrael 4096 Feb 18 20:35 ../
- drwxr-xr-x 27 azrael azrael 4096 Feb 18 21:53 linux-i586/
- drwxr-xr-x 26 azrael azrael 4096 Feb 18 21:08 linux-i586-debug/
- azrael@ubuntu:~/Tech/openjdk/build/linux-i586/bin$ ./java -version
- openjdk version "1.7.0-internal-debug"
- OpenJDK Runtime Environment (build 1.7.0-internal-debug-azrael_2012_02_18_20_37-b00)
- OpenJDK Server VM (build 21.0-b17-jvmg, mixed mode)
Linux 下编译自己的 OpenJDK7 包括JVM和JDK API的更多相关文章
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- 【原创】Linux下编译链接中常见问题总结
前言 一直以来对Linux下编译链接产生的问题没有好好重视起来,出现问题就度娘一下,很多时候的确是在搜索帮助下解决了BUG,但由于对原因不求甚解,没有细细研究,结果总是在遇到在BUG时弄得手忙脚乱得. ...
- Linux 下编译、安装、配置 QT
转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...
- linux下编译eXosip、osip,以及UAC和UAS的例子
从网站上看到了这样的一篇博文 :Windows下编译eXosip.osip,以及UAC和UAS的例子 (链接:http://www.cnblogs.com/dyllove98/archive/2013 ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译原理分析
linux下编译hello.c 程序,使用gcc hello.c,然后./a.out就能够执行:在这个简单的命令后面隐藏了很多复杂的过程,这个过程包含了以下的步骤: ================= ...
- [转载]linux下编译php中configure参数具体含义
编译N次了 原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php ...
- linux下编译运行TIGL Viewer步骤
linux下编译运行TIGL Viewer步骤(仅为了正确编译安装的话直接跳到步骤3) 1. linux发行版选择:由于linux发行版众多,不同版本包含的库版本可能存在差别,因此需要选择正确的版本. ...
随机推荐
- 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...
- STL---list(列表)
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. list的类模板声明为 template<class T, class A ...
- POJ 3728
http://poj.org/problem?id=3278 题目大意就是在同一坐标轴上给你一个人的坐标,一个牛的坐标,而人的运动每一次运动有三种方式,一种是后退1,一种是前进1,还有一种是坐标翻倍, ...
- Django用户管理及认证
同步组http://www.douban.com/group/topic/29387804/ ldapsearch -x -w password -D "cn=me,cn=Users,dc= ...
- hdu1520
基本的树形dp #include <cstring> #include <cstdio> #include <vector> using namespace std ...
- Unity3d 查找所选的是否引用过某资源
一.使用方式: 1.选择要被查找的资源,右键->Find Reference 2.把资源拽入Res,点Find 3.输出结果见Console //代码 using UnityEngine; us ...
- std::map
1.例: map<int,string> m_mapTest; m_mapTest.insert(make_pair(1,"kong")); m_mapTest.ins ...
- Java NIO 非阻塞Socket服务器构建
推荐阅读IBM developerWorks中NIO的入门教程,尤其是对块I/O和流I/O不太清楚的开发者. 说到socket服务器,第一反应是java.net.Socket这个类.事实上在并发和响应 ...
- HDU 4940 Destroy Transportation system(无源汇有上下界最大流)
看不懂题解以及别人说的集合最多只有一个点..... 然后试了下题解的方法http://blog.sina.com.cn/s/blog_6bddecdc0102uzka.html 首先是无源汇有上下界最 ...
- best matched pair
今天的模拟赛,被虐的不行....英文太差,弄不懂题意,弄懂题意了还不会... 感觉快要受不了了... #include <iostream> #include <cstdio> ...