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)
分享到:
相关推荐
openjdk 7u的源码,可以用来编译jvm(已编译成功),深入理解java虚拟机。由于资源上传限制,7u和6两个源码压缩为3个分卷,请下载3个分卷放在同一文件夹中再解压。自用资源,放心下载。
1系统环境 Xcode Oracle JDK:13 先确保系统已安装freetype和ccache 自由类型:2.9 ccache:3.3.5 $ brew install freetype ccache ...-- with - jvm - variants = server 编译server类型JVM -- wi
完整的openjdk7源码,可配合boot jdk6进行源码编译,亲测可用
https://hg.openjdk.java.net/jdk/jdk12/file/06222165c35f 注意!看了周志明的《深入理解Java虚拟机》上面帖的地址。上面的网站下载得文件不知道是服务器的原因还是什么...编译openjdk12源码,调试jvm。可以下载这个
这个是从openjdk官网下载的源码,openjdk12,有感兴趣的同学,想编译openjdk12源码,调试jvm的,从官网下载慢的,可以下载这个
Oracle JDK vs OpenJDK Java 和 C++ 的区别? 基本语法 字符型常量和字符串常量的区别? 注释有哪几种形式? 标识符和关键字的区别是什么? Java 语言关键字有哪些? 自增自减运算符 continue、break 和 return 的区别...
今天给客户发了一个ubuntu下的小工具,用户到手后运行不了, 报错: 一开始以为是全权限的问题,所以让她“ls -la”一下,看看权限,但是结果是ok的,权限没问题 后来发现他是用的是32bit的ubuntu系统,而我们...
当然,严格来说JVM也是虚拟机规范,有很多不同的实现,Sun/OracleJDK和OpenJDK中的默认Java虚拟机是HotSpot虚拟机,是目前使用范围最广的Java虚拟机,一般讲到的JVM默认指的就是HotSpot虚拟机。 1.2、Java程序运行...
从官网下载比较慢的同学可以从这里试一下,没有做任何修改,下载后直接解压后编译即可。欢迎广大同学学习交流。
1.1.3.Oracle JDK 和 OpenJDK 的对比 1.1.4.Java 和 C++的区别? 1.1.5.什么是 Java 程序的主类 应用程序和小程序的主类有何不同? 1.1.6.Java 应用程序与小程序之间有哪些差别? 1.1.7.import java 和 javax 有什么...
HSDIS是一个Java官方推荐 HotSpot虚拟机JIT编译代码的反汇编插件。我们有了这个插件后,通过JVM参数-XX:+PrintAssembly就可以加载这个HSDIS插件,然后为我们把JIT动态生成的...这个hsdis-amd64.dll是基于openjdk8编译。
2. JVM vs JDK vs JRE 3 3. 什么是字节码?采用字节码的好处是什么? 4 4. 为什么不全部使用 AOT 呢? 5 5. 为什么说 Java 语言“编译与解释并存”? 5 6. Oracle JDK vs OpenJDK 6 7. Java 和 C++ 的区别? 9 基本语法...
Kit的缩写,包括编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件.JDK依赖于平台,即Windows,Mac和Unix系统有单独的安装程序.JDK包括JVM和JRE完全负责代码执行。 OpenJDK安装- 打开JDK站点地址: ...
HSDIS是一个Java官方推荐 HotSpot虚拟机JIT编译代码的反汇编插件。我们有了这个插件后,通过JVM参数-XX:+PrintAssembly就可以加载这个HSDIS插件,然后为我们把JIT动态生成...这个hsdis-amd64.dll是基于openjdk11 编译。
第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出...
编译安装JDK以后,如果原来的openjdk 没有卸载完毕,就会存在两个jvm虚拟机,需要定义以下默认的jvm。
JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。 但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计...