编译openjdk 调试java

背景

一直很想深入了解java运行机制,想编译debug版本openjdk

实践

安装环境

安装vmware软件,第一步就遇到很多麻烦,找不到免费的vmware。

后来下载了官网的,在github和百度一直搜如何破解,幸亏有大佬传了比较全的破解方式。

破解地址

准备安装操作系统,本人选择centos7,刚上来发现可以通过debug-install命令安装调试信息,心想着这样都不用自己编译了,但发现调试版本和github上版本不对套。而且jdk安装版本和debug信息版本还不对套。

编译openjdk

第一次编没经验,为了少走弯路,网上搜一大堆方法。包括以前都一直有看,没去实践,印象里要装低版本JDK,然后configure各种入参,坑爹很。此次搜索发现centos有点简单,都不敢相信。

yum install hg
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u openjdk8
#进入opnjdk8文件夹//执行如下命令拉取源码
sh get_source.sh  //可能要多次执行,因为代码一次无法全部拉取下来。 会在编译时出问题

编译配置

chmod +x configure
./configure --enable-debug

 

参考链接:

手动编译jdk1.8源码-centos7_java1.8版本怎么编译-CSDN博客

https://www.cnblogs.com/liudaihuablogs/p/13462731.html

Centos7编译openjdk8 - 简书

JVM之CentOS7编译openjdk1.7 - 简书

遇到问题

1、configure会提示各种未安装软件,按照提示来就好了,或者直接按照参考链接里一股脑儿装。

2、编译JDK失败,编译java等源码都未报错。

报错解决:

Generating Nimbus source files
[Error] encoded value was less than 0: encode(-8.326673E-17, 5.0, 11.0, 16.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0)
[Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
[Error] Encountered Infinity: encode(-0.00877193, 0.0, 7.0, 7.0)
Compiling 4 files for BUILD_BREAKITERATOR
Generating HTML DTD file
[Parsed DTD html32 in 34ms]
Error: time is more than 10 years from present: 1388527200000
java.lang.RuntimeException: time is more than 10 years from present: 1388527200000at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)
gmake[2]: *** [/root/openjdk8/build/linux-x86_64-normal-server-fastdebug/jdk/lib/currency.data] Error 1
gmake[1]: *** [gendata-only] Error 2

通过find 下 GenerateCurrencyData,再找到方法就好了,本人也是事先了搜了下代码仓发现抱错代码如下

只要把上述10年改成100年就好了。省得还网上改各种配置,使得时间time减去当前时间小于10年。

最终成果

编译成功,辛亏之前编译过的步骤不会重新再跑一遍,那就坑了!

是debug版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418282.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Peter算法小课堂—拓扑排序与最小生成树

拓扑排序 讲拓扑排序前,我们要先了解什么是DAG树。所谓DAG树,就是指“有向无环图”。请判断下列图是否是DAG图 第一幅图,它不是DAG图,因为它形成了一个环。第二幅图,它也不是DAG图,因为它没有方向。第三幅…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署(192.168.41.31) 环境准备 搭建Consul服务 查看集群信息 registrato…

触摸屏监控双速电动机-确定地址分配

I/O地址分配 当选择了PLC之后,首先需要确定的是系统中各I/O点的绝对地址。在某些PLC 中1/O绝对地址的分配方式共有固定地址型、自动分配型、用户定义型3种。实际所使用的方式取决于所采用的PLC的CPU型号、编程软件、软件版本、编程人员的选择等因素。 本任务输入信…

vulnhub-dc2靶场

DC2 配置环境vmware17 nat网络配置 下载地址:DC and Five86 Series Challenges - DC-1 (似乎从2024/1/18左右找不到这个资源了) 攻击机kali与其在同一网段下 ip:192.168.52.130 信息收集 arp-scan -l #内网探测,扫描目标ip发现目标ip1…

vtk9.3 配置 visual studio 2019 运行环境 和运行实例详解

(1)包含文件配置: 项目--属性--VC目录,在包含目录中把include文件夹的地址加进去,一直要到下一级 vtk-9.3目录下, 小知识: 在Visual Studio 2019中运行项目时,如果项目中使用了第三…

Maven 基础安装配置及使用

大家好我是苏麟 , 今天聊聊Maven . Maven Maven , 是Apache公司下基于Java开发的开源项目 . 我们构建一个项目需要用到很多第三方的类库,需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一…

基于JavaWeb+SSM+Vue基于微信小程序生鲜云订单零售系统的设计和实现

基于JavaWebSSMVue基于微信小程序生鲜云订单零售系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计…

开源项目_大模型应用_Chat2DB

1 基本信息 项目地址:https://github.com/chat2db/Chat2DBStar:10.7K 2 功能 Chat2DB 是一个智能且多功能的 SQL 客户端和报表工具,适用于各种数据库。 对于那些平时会用到数据库,但又不是数据库专家的程序员来说,…

反序列化提升刷题(2)

今天的例题&#xff1a; <?phphighlight_file(__FILE__);class ctfshowvip{public $username;public $password;public $code;public function __construct($u,$p){$this->username$u;$this->password$p;}public function __wakeup(){if($this->username! || $thi…

springboot109新闻稿件管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的新闻稿件管理系统 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获…

揭秘:Java、Spring Boot、Vue 和 MySQL 在学生信息管理系统中的应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

基于JavaWeb+SSM+Vue智能社区服务小程序系统的设计和实现

基于JavaWebSSMVue智能社区服务小程序系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相…