win10编译openjdk源码

上篇文章作者在ubuntu系统上实践完成openjdk源码的编译,但是平常使用更多的是window系统,ubuntu上编译出来JDK无法再windows上使用。所以作者又花费了很长时间在windows系统上完成openjdk源码的编译,陆续花费一个月的时间终于完成了编译。
本文挑拣关键点记录,就不详细记录踩坑的细节。如果您希望快速成功编译,欢迎咨询。

1、安装vs2010,仅需安装C++模块。
重要的事情说三遍:
一定要安装英文专业版!!!
一定要安装英文专业版!!!
一定要安装英文专业版!!!

2、编译freetype。这项参照网上帖子,一般问题不大。
3、下载安装Cygwin。这项参照网上帖子,一般问题不大。

出现的问题:
1、Your cygwin is too old. You are running 3.4.10-1.x86_64, but at least cygwin 1.7 is required. Please upgrade
在这里插入图片描述
解决方法:
openjdk\common\autoconf\generated-configure.sh,注释cygwin版本检查部分
在这里插入图片描述
2、java.lang.RuntimeException: time is more than 10 years from present: 138852720000
在这里插入图片描述
解决方法:
将284行10年改成50年。
在这里插入图片描述
3、CreateJars.gmk文件问题

make[2]: *** [CreateJars.gmk:268/cygdrive/e/hub/openjdk/jdk8u/build/windows-x86_64-normal-server-release/images/lib/_the.rt.jar.contents] 错误 1
make[2]: *** 正在等待未完成的任务....
make[1]: *** [BuildJdk.gmk:101:images] 错误 2
make: *** [/cygdrive/e/hub/openjdk/jdk8u//make/Main.gmk:136:images-only] 错误 2

解决方法:
使用本地git shell工具编辑CreateJars.gmk文件。
cd jdk/make
vi CreateJars.gmk
在268行,有两处:.class$$,在$$之前插入一个特殊字符。做法如下:
i进入编辑模式,ctrl+v,ctrl+m,按esc退出,保存,退出。

目录结构:
在这里插入图片描述

在Cygwin64 终端中执行命令
1、bash ./configure --enable-debug --with-target-bits=64 --with-boot-jdk=/cygdrive/c/jdk1.8.0_131 --with-freetype=/cygdrive/d/jdk8_src/freetype-2.13.2/
在这里插入图片描述
执行成功结果:
在这里插入图片描述
2、编译 make all
在这里插入图片描述

执行成功结果:
大概等待约20分钟,不同机器时间不一。
在这里插入图片描述
生成的文件目录
在这里插入图片描述
j2sdk-image目录下边的目录结构我们就比较熟悉了,就是我们平常使用的jdk目录。
在这里插入图片描述
查看java版本:
在这里插入图片描述
执行HelloWorld

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello world !");
	}
}

在这里插入图片描述
在这里插入图片描述
素材:https://pan.baidu.com/s/184Szg44DfUL8dEgeXmq9Fg?pwd=1234

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024牛客寒假算法基础集训营5 -- EF soyorin的数组操作

题目大意: 思路解析: 我们可以发现偶数情况下,我们可以无限做 k n的操作,这样一定会让数组变为非降序数组。 但是奇数情况下,最后一个数没有办法发生变化,所以我们只能统计怎样在保证i--n为非降序情况下最…

解决IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题

问题描述: 当使用IntelliJ IDEA2023版本中Spring Initializr新建Spring项目时,即使JDK配置项为1.8,Java配置项仍然只能选17或21. 在JDK为1.8版本情况下,Java选择17或21,点击NEXT按钮,则会弹窗提示SDK不支持…

ChatGPT丨“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用,人工智能…

ClickHouse--11--ClickHouse API操作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.Java 读写 ClickHouse API1.1 首先需要加入 maven 依赖1.2 Java 读取 ClickHouse 集群表数据JDBC--01--简介 ClickHouse java代码 1.3 Java 向 ClickHouse 表中写…

高校学科竞赛平台|基于springboot高校学科竞赛平台设计与实现(源码+数据库+文档)

高校学科竞赛平台目录 目录 基于springboot高校学科竞赛平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、竞赛题库管理 2、竞赛信息管理 3、晋级名单管理 4、往年成绩管理 5、参赛申请管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最…

typescript 索引签名类型

ts索引类型简介 在TypeScript中,索引签名类型(Index Signature Type)是一种特殊的类型,它定义了对象中键的类型以及相应的值的类型。通过使用索引签名类型,我们可以表示一个对象,该对象的键可以是任意类型…

Android全新UI框架之常用ComposeUI组件

在Compose中,每个组件都是一个带有Composable注解的函数,被称为Composable。Compose已经预置了很多基于MD设计规范的Composable组件。 在布局方面,Compose提供了Column、Row、Box三种布局组件(感觉跟flutter差不多),类似于传统视图…

《Python 语音转换简易速速上手小册》第5章 音频数据处理(2024 最新版)

文章目录 5.1 音频数据的基本处理5.1.1 基础知识5.1.2 主要案例:音频剪辑工具案例介绍案例 Demo案例分析 5.1.3 扩展案例 1:自动音量调节器案例介绍案例 Demo案例分析 5.1.4 扩展案例 2:语音识别预处理案例介绍案例 Demo案例分析 5.2 使用 Py…

LLM 模型融合实践指南:低成本构建高性能语言模型

编者按:随着大语言模型技术的快速发展,模型融合成为一种低成本但高性能的模型构建新途径。本文作者 Maxime Labonne 利用 mergekit 库探索了四种模型融合方法:SLERP、TIES、DARE和passthrough。通过配置示例和案例分析,作者详细阐…

开启智能互动新纪元——ChatGPT提示词工程的引领力

目录 提示词工程的引领力 高效利用ChatGPT提示词方法 提示词工程的引领力 近年来,随着人工智能技术的迅猛发展,ChatGPT提示词工程正逐渐崭露头角,为智能互动注入了新的活力。这一技术的引入,使得人机交流更加流畅、贴近用户需求&…

S-35390A计时芯片介绍及开发方案

计时芯片 S-35390A芯片是计时芯片,一般用来计算时间。低功耗,宽电压,受温度影响小,适用于很多电路。它有一个问题,不阻止用户设置不存在的时间,设置进去之后计时或者闹钟定时会出错。 规格书阅读 首先我…

推荐几款项目经理常用的项目管理软件

随着科技的发展和项目需求,项目管理工具成为了确保工作顺利进行的关键。市场上有许多优秀的免费项目管理工具,它们功能强大、易于使用,并可以帮助团队更有效地规划、组织、执行和监控项目。以下是几款深受项目经理欢迎,好用且免费…

【转载】企业资产收集与脆弱性检查工具

简介 云图极速版是针对拥有攻击面管理需求的用户打造的 SaaS 应用,致力于协助用户管理互联网资产攻击面的 SaaS 化订阅服务产品。可实现对备案域名、子域名、IP、端口、服务、网站、漏洞、安全风险等场景进行周期性监控,支持多维度分析攻击面。利用可视化…

uni-app 开发调试自动打开手机屏幕大小界面(Aidex移动端开发项目)

上效果: 下载Aidex的移动端项目并打开: 若依-ruoyi-AiDex-Uniapp: 若依-Ruoyi APP 移动解决方案,基于uniappuView封装的一套基础模版,开箱即用,免费开源,一份代码多终端适配,支持H5、支付宝小程…

基于机器学习的青藏高原高寒沼泽湿地蒸散发插补研究_王秀英_2022

基于机器学习的青藏高原高寒沼泽湿地蒸散发插补研究_王秀英_2022 摘要关键词 1 材料和方法1.1 研究区概况与数据来源1.2 研究方法 2 结果和分析2.1 蒸散发通量观测数据缺省状况2.2 蒸散发与气象因子的相关性分析2.3 不同气象因子输入组合下各模型算法精度对比2.4 随机森林回归模…

【统计分析数学模型】聚类分析

【统计分析数学模型】聚类分析 一、聚类分析1. 基本原理2. 距离的度量(1)变量的测量尺度(2)距离(3)R语言计算距离 三、聚类方法1. 系统聚类法2. K均值法 三、示例1. Q型聚类(1)问题描…

springboot集成JWT实现token权限认证

vuespringboot登录与注册功能的实现 注&#xff1a;对于JWT的学习&#xff0c;首先要完成注册和登录的功能&#xff0c;本篇博客是基于上述博客的进阶学习&#xff0c;代码页也是在原有的基础上进行扩展 ①在pom.xml添加依赖 <!-- JWT --> <dependency><grou…

QPaint绘制自定义仪表盘组件01

网上抄别人的&#xff0c;只是放这里自己看一下&#xff0c;看完就删掉 ui Dashboard.pro QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomm…

5 原型模式 Prototype

1.模式定义: 指原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象 2.应用场景&#xff1a; 当代码不应该依赖于需要复制的对象的具体类时&#xff0c;请使用Prototype模式。 Spring源码中的应用 org.springframework.beans.factory.support.AbstractB…

基于java springboot+mybatis OA办公自动化系统设计和实现

基于java springbootmybatis OA办公自动化系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末…