当前位置: 首页 > news >正文

[置顶] How to compile openjdk 7 in RHEL5

1. 为什么要编译openjdk的code? 因为从Eclipse调试JDK的代码时,方法中的局部变量不能显示,这样是因为编译JDK时,没有编译成debug版本。

2. RHEL5中自带的开发者JDK已经是debug版本了,所以可以直接使用。

     例如:java-1.6.0-openjdk-devel-1.6.0.0-1.24.1.10.4.el5

3. 在Eclipse中如何使用其它版本的JDK,首先在preference中将编译好的JDK路径添加进去,然后修改工程中的JDK依赖关系,重新编译工程,debug到 JDK中,这时JDK代码中的局部变量就可以查看了


这里的方法是从http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html来的。

下面开始具体的步骤:

1. 安装setuptools

install setuptools in windows/linux
1.1. download https://bitbucket.org/pypa/setuptools/raw/0.7.4/ez_setup.py
1.2. run it with python


2. 安装Mercurial

install Mercurial in linux:
2.1 easy_install -U mercurial

3. 下载openjdk的source

download open jdk 7 source

3.1 hg clone http://hg.openjdk.java.net/jdk7/jdk7 YourOpenJDK

3.2 cd YourOpenJDK

3.3 sh ./get_source.sh


4. 安装Ant和freetype

install ant 1.7
install freetype 2.3

4.1 从apache的网站上下载ant的zip包,解压到任意目录

4.2 从sourceforge上下载2.3版本的freetype的source包

      使用下面的命令安装:

     ./configure && make && sudo -u root make install


5.设置环境变量

5.1 LANG和BOOTDIR

export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64

5.2  Ant

export ANT_HOME=/tmp/ant/apache-ant-1.7.1
export PATH=/tmp/ant/apache-ant-1.7.1/bin:$PATH

5.3 Freetype(这里是默认的安装路径)

export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/
export ALT_FREETYPE_LIB_PATH=/usr/local/lib/


6. 检查一切完好

gmake sanity ARCH_DATA_MODEL=64


7. 编译

gmake
#make debug version
gmake ALLOW_DOWNLOADS=true fastdebug_build
gmake ALLOW_DOWNLOADS=true debug_build




相关文章:

  • Qt Creator 代码自动补全设置
  • 自己写中文分词器之(一)_逆向最大匹配算法的实现
  • centos5.8安装Mysqldb
  • shadow projection
  • STM32学习笔记(5):通用定时器PWM输出
  • 产品经理如何在技术人员面前更有说服力?
  • PHP autoload机制详解
  • linux系统编程之文件与IO:文件描述符、open,close
  • Knockout 新版应用开发教程之创建view models与监控属性
  • 将不确定变为确定~DateTime.MinValue和MaxValue引发的异常
  • java文件操作源码
  • linux,windows 修改 网卡MTU 值
  • 测试程序运行耗时
  • [置顶] 使用严苛模式打破Android4.0以上平台应用中UI主线程的“独断专行”
  • 基于linux和虚拟化的禅道管理操作系统1.0发布了!
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • canvas绘制圆角头像
  • CentOS6 编译安装 redis-3.2.3
  • Facebook AccountKit 接入的坑点
  • IndexedDB
  • JavaScript设计模式与开发实践系列之策略模式
  • js操作时间(持续更新)
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vue--为什么data属性必须是一个函数
  • 大数据与云计算学习:数据分析(二)
  • 高度不固定时垂直居中
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 扑朔迷离的属性和特性【彻底弄清】
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 三分钟教你同步 Visual Studio Code 设置
  • 手写双向链表LinkedList的几个常用功能
  • 算法之不定期更新(一)(2018-04-12)
  • 携程小程序初体验
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​如何在iOS手机上查看应用日志
  • "无招胜有招"nbsp;史上最全的互…
  • #13 yum、编译安装与sed命令的使用
  • #define与typedef区别
  • (10)STL算法之搜索(二) 二分查找
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)linux 命令大全
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .project文件
  • /etc/motd and /etc/issue
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Conditional注解详解