- 浏览: 288722 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
狼子六:
已经开始用了
Java 枚举7常见种用法 -
相约的旋律:
方法一下面的"public static fianl ...
Java 枚举7常见种用法 -
kiddy2012:
...
[转载]程序员装B指南 -
fancy105:
写得很好,简单明了双全面!
Java 枚举7常见种用法 -
he_wen:
请问一下 G1算法是否在线上使用了?
Garbage First(G1) 日志分析工具
获取源码
从openjdk代码仓库获取(比较慢)
- 安装mercurial
Mercurial是一个版本管理工具。sudo apt-get install mercurial
- 将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个:
[extensions]
forest=/home/lichengwu/hgforest-crew/forest.py
fetch= - 下载jdk7源码
hg fclone http://hg.openjdk.java.net/jdk7/jdk7
直接下载源码包[推荐]
# wget http://www.java.net/download/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-b147-27_jun_2011.zip
# unzip openjdk-7-fcs-src-b147-27_jun_2011.zip
安装编译必须组件
- 安装gcc、g++、make等
sudo apt-get install build-essential
- 安装ant 1.7以上
sudo apt-get install ant
- 安装XRender
sudo apt-get install libxrender-dev sudo apt-get install xorg-dev
- 安装alsa
sudo apt-get install libasound2-dev
- Cups
sudo apt-get install libcups2-dev
- 安装jdk6
一般ubuntu都自带,没有的话sudo apt-get install openjdk-6-jdk
或者下载oracle的jdk也可以
- 安装杂碎
sudo apt-get install gawk zip libxtst-dev libxi-dev libxt-dev
- 安装findbugs??
我在ubuntu12.04上没有安装findbugs也成功编译了,如果编译失败,请自行安装
准备环境和脚本
!/bin/bash # cd jdk source code folder cd ~/openjdk7 # export ALT_BOOTDIR export LANG=C ALT_BOOTDIR=/home/lichengwu/openjdk_build_files/jdk1.6.0_32 # set build profile jdk/make/jdk_generic_profile.sh # disable JAVA_HOME export -n JAVA_HOME # export ALT_JDK_IMPORT_PATH export ALT_JDK_IMPORT_PATH=/home/lichengwu/openjdk_build_files/jdk1.6.0_32 # start build make DEBUG_NAME=all_fastdebug BUILD_JAXWS=false BUILD_JAXP=false
QA
如果你通过上面步骤就编译成功了,那你真的人品爆发了,以下是我编译时候遇到的问题
- 先注释掉 WARNINGS_ARE_ERRORS = -Werror
vim hotspot/make/linux/makefiles/gcc.make
- "*** This OS is not supported:" `uname -a`; exit 1;
这是由于内核版本太高了,两种方式解决:
方法一:lichengwu@s4:~/bin$ uname -r #查看当前的内核版本: 3.2.0-20-generic 修改文件/home/thebye85/jdk7/hotspot/make/linux/Makefile #在这行最后加上当前的内核版本3.2%,如下: lichengwu@s4:~/bin$ SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3.2%
方法二:
vi hotspot/make/linux/Makefile
注释掉下面代码:
check_os_version:
#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
# $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif - sound错误
cd jdk/make/javax/sound/jsoundalsa vim Makefile
#找到CPPFLAGS ,在其结尾,添加 -lasound
- make[5]: *** [/home/lichengwu/openjdk7/build/linux-amd64/lib/amd64/libjsoundalsa.so] Error 1
解决:ln -s build/linux-amd64/lib/amd64/libjsound.so
build/linux-amd64/lib/amd64/libjsoundalsa.so
如果ln不行 就用cp
编译结果
corba hotspot langtools 编译时间很短是因为编译在hotspot时候出错,重新编译,如果正常一次跑通,大概半个小时 我用的是虚拟机:
########################################################################
##### Leaving jdk for target(s) sanity all images #####
########################################################################
##### Build time 00:09:14 jdk for target(s) sanity all images #####
########################################################################
-- Build times ----------
Target all_fastdebug_build
Start 2012-06-13 13:53:38
End 2012-06-13 14:03:13
00:00:07 corba
00:00:08 hotspot
00:09:14 jdk
00:00:06 langtools
00:09:35 TOTAL
查看版本
lichengwu@s4:~/openjdk7/build/linux-amd64/j2sdk-image/bin$ java -version
java version "1.6.0_24"
OpenJDK Runtime
Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu3)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
lichengwu@s4:~/openjdk7/build/linux-amd64/j2sdk-image/bin$ ./java -version
openjdk version "1.7.0-internal-all_fastdebug"
OpenJDK Runtime
Environment (build 1.7.0-internal-all_fastdebug-lichengwu_2012_06_13_11_47-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)
参考资料:
编译:http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html
http://thebye85.iteye.com/blog/1545311
关于为啥要自己编译jdk:http://rednaxelafx.iteye.com/blog/1549577
发表评论
-
Java压缩/解压缩二进制文件
2013-02-08 13:56 5738在Java中提供Deflater和Inflater工具类来 ... -
java常用并发工具介绍
2013-02-06 23:22 1625本文主要介绍的工具包括: CountDownLa ... -
Garbage First(G1) 日志分析工具
2012-12-22 22:35 2206G1介绍:http://softbeta.iteye.com/ ... -
http_load工具使用
2012-12-11 11:32 1847安装: #wget http://soft.vpser ... -
Spring源码阅读——Ioc初始化过程
2012-11-20 21:52 1263以web项目启动为例,介绍一下Ioc容器的初始化。 下面这个 ... -
Spring源码阅读——获得bean
2012-10-20 20:57 3190已XmlWebApplicationContext为例,从ge ... -
Spring源码阅读——BeanFactory体系结构
2012-10-10 18:10 2238以下是看代的码随笔,想到哪写到哪,没有组织逻辑,见谅见谅。 ... -
varnish使用汇总(不断更新)
2012-09-28 17:02 2416Q:如何配置varnish缓存到硬盘? A:http://s ... -
varnish+nginx实现内网附件缓存
2012-09-28 12:43 2623本文是对文件内网缓存方案的实现。 varn ... -
varnish 缓存到硬盘
2012-09-19 18:27 2988方法一:在启动的时候设置 varnishd -s ... -
生成随机数组
2012-09-11 20:23 10821.要求生成一组n位的数字,0-9...(n个)之间的稠密集合 ... -
O(1)复杂度获得栈中的极值
2012-09-09 23:47 1290设计一个栈,O(1)复杂度实现入栈,出栈,栈中最大值,栈中最小 ... -
Garbage First(G1)介绍
2012-07-08 13:34 2237介绍: Garbage First(G1)致 ... -
ubuntu源推荐
2012-04-27 19:36 953国内的源东西不是很全,推荐下面的源。 #### ... -
jinfo 查看、设置JVM参数
2012-04-25 15:36 5150用法: # jinfo -h Usage: ... -
daemontools安装使用
2012-04-23 16:01 1323Create a /package directory: ... -
nginx query string rewrite
2012-04-19 19:31 5415有url http://192.168. ... -
一些参数,弥补CMS(Concurrent Mark-Sweep)收集器的缺点
2012-03-28 21:11 1679CMS缺点:http://softbeta.iteye ... -
[转载]PrintCompilation 参数解释
2012-03-27 13:59 1547英文不好,所以就不翻译了: b Blocking co ... -
MooseFS 分布式文件系统介绍与部署
2012-03-14 13:54 2057一些概念 Master 用来管理MooseFS。安装mast ...
相关推荐
在Ubuntu 12.04这个稳定且广泛应用的操作系统版本上编译APUE的源码,为开发者提供了一个理想的实践平台,特别是对那些想要学习Linux C编程的初学者和进阶者。 首先,我们需要理解Ubuntu 12.04(代号Precise ...
### 在Ubuntu 12.04下编译Linux内核的知识点...通过以上详细的步骤,读者应该能够顺利地在Ubuntu 12.04上编译出符合自己需求的Linux内核。这一过程虽然繁琐,但对于深入理解和掌握Linux操作系统的工作机制大有裨益。
### i.MX6 Ubuntu12.04上编译LTIB #### 知识点概述 本篇文章将详细解析如何在i.MX6平台上使用Ubuntu 12.04 LTS操作系统进行Linux Tools Integration Bundle (LTIB)的编译流程。i.MX6是一款由Freescale ...
标题“libc6 for ubuntu12.04”涉及的是Ubuntu 12.04操作系统中的一个关键系统库——libc6。这个标题表明这是一个针对该特定版本Ubuntu的libc6软件包,它是Linux系统中核心的C语言运行时库。 **libc6详解** libc6...
OpenCV-2.4.0在ubuntu12.04下编译出的目标文件,可以直接使用,详情查看本人博客:http://blog.csdn.net/shuxiao9058/article/details/7525376
在Ubuntu 12.04(Precise Pangolin)上编译和修复错误的过程,不仅涉及到了对源代码的深入理解,还涵盖了操作系统开发、编译工具链和调试技术等多个方面。 1. **Linux内核结构**:Linux-0.11源代码展示了早期内核的...
在Ubuntu 12.04 LTS(一个基于Debian的Linux发行版)的i386架构上编译意味着这个OpenCV版本已经适应了32位系统。这很重要,因为虽然64位系统已经成为主流,但仍有大量32位系统在运行,尤其是在嵌入式设备或旧硬件上...
Ubuntu 12.04 编译内核模块 一、前期准备 在 Ubuntu 12.04 下编译内核模块前,需要安装 essential 软件包,使用以下命令安装: `apt-get install build-essential` 这将安装编译内核模块所需的基本工具。 二、...
原来的ssh扫描报太多漏洞了,整理了下一键安装的脚本直接升级到最新的;...#update Ubuntu12.04 : OpenSSH_7.9p1, OpenSSL 1.1.1b 26 Feb 2019 #old : OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
andrid ubuntu12.04和14.04的编译环境,目前在开发android底层和中夹层,一直都用的整个编译环境,需要的小伙伴可以看看
《Ubuntu 12.04 使用手册1—4》是一套专为Ubuntu 12.04 LTS(长期支持版)用户编写的详尽指南,旨在帮助初学者和进阶用户掌握这一开源操作系统的基本操作与高级技巧。Ubuntu 12.04,代号“Precise Pangolin”,是...
Ubuntu 12.04 下安装 Nginx、Python、uWSGI 和 Django 的步骤 在本文中,我们将介绍如何在 Ubuntu 12.04 环境下安装 Nginx、Python、uWSGI 和 Django。这些技术栈组合是非常流行的 Web 应用程序开发环境。 一、...
总结起来,搭建Ubuntu 12.04上的Qt和Qt-Embedded开发环境涉及到安装Qt Creator,配置和编译Qt库,以及将编译后的库路径添加到环境变量。整个过程可能需要较长时间,特别是编译过程,但完成后将为开发者提供一个完整...
【Ubuntu12.04菜鸟使用手册合集】是一份专为初学者设计的资源,旨在帮助用户熟悉Ubuntu 12.04操作系统的基本操作和功能。Ubuntu是基于Debian的开源Linux发行版,以其易用性和稳定性而受到全球用户的喜爱。这份合集...
Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+...
《学习Ubuntu 12.04入门指南》是一份针对初学者的详尽教程,旨在帮助用户熟悉并掌握Ubuntu 12.04 LTS(长期支持版)操作系统的基础操作和特性。Ubuntu是基于Linux内核的开源操作系统,以其用户友好、易用性和强大的...
ctags ubuntu 12.04 编译版本,这里为了方便诸位编译ctags出错。奉献自己编译生成测ctags