BiSheng JDK-build扩展开发:如何添加新的JDK版本支持
BiSheng JDK-build扩展开发如何添加新的JDK版本支持【免费下载链接】bishengjdk-buildBiSheng JDK build and test scripts - common across all releases/versions项目地址: https://gitcode.com/openeuler/bishengjdk-build前往项目官网免费下载https://ar.openeuler.org/ar/BiSheng JDK-build是openEuler社区提供的JDK构建与测试脚本集合支持跨版本、跨架构的JDK编译流程。本文将详细介绍如何为该项目添加新的JDK版本支持帮助开发者快速扩展构建能力。准备工作了解项目结构在开始扩展前先熟悉项目的核心目录结构bootjdk/存放不同JDK版本的引导JDK压缩包如jdk21/OpenJDK21U-jdk_x64_linux_hotspot_21.0.1_12.tar.gzsbin/common/包含架构和版本相关的常量定义如constants_jdk25_x86_64.shsbin/prepare.sh环境准备脚本负责依赖安装和引导JDK配置sbin/buildjdk.sh核心构建脚本处理编译参数和打包流程步骤1添加引导JDK新JDK版本需要对应的引导JDKBoot JDK需将其放置在bootjdk目录下创建版本目录mkdir -p bootjdk/jdk{VERSION}例如jdk26下载对应架构的引导JDK压缩包如OpenJDK26U-jdk_x64_linux_hotspot_26.0.0_10.tar.gz放置到bootjdk/jdk{VERSION}/目录下引导JDK版本通常需要比目标版本低1-2个主要版本具体参考JDK官方构建文档步骤2创建版本常量配置在sbin/common/目录下创建新的常量配置文件命名格式为constants_jdk{VERSION}_{ARCH}.sh# 示例constants_jdk26_x86_64.sh declare -A DEFAULT_CONFIGURE_ARGS( [with-extra-cflags]-fno-aggressive-loop-optimizations \ -fno-gnu-unique \ -Wno-unused-parameter \ [with-extra-ldflags]-Wl,-z,now \ [enable-unlimited-crypto] \ [with-zlib]bundled ) export DEFAULT_MAKE_ARGSLOGdebug export RELEASE_MAKE_TARGETSproduct-images legacy-jre-image export TARGET_FILE_TEMPLATEbisheng-jdk-26.0.REPLACE-b$BUILD_JDK_BUILD_NUMBER-linux-x64 # 添加测试排除项 export JTREG_TEST_EXCLUDEcompiler/c2/Test8004741.java \ runtime/Thread/AsyncExceptionOnMonitorEnter.java该文件需定义编译参数DEFAULT_CONFIGURE_ARGS构建目标RELEASE_MAKE_TARGETS输出文件名模板TARGET_FILE_TEMPLATE测试排除用例JTREG_TEST_EXCLUDE步骤3修改环境准备脚本编辑sbin/prepare.sh添加新JDK版本的引导JDK配置# 在InstallJDKBuildTools函数中添加 elif [[ ${BUILD_CONFIG[BUILD_VARIANT]} ${BISHENGJDK_26_BUILD_VARIANT} ]]; then cd ${ROOT_DIR}/resources if [[ ${BUILD_CONFIG[ARCH]} aarch64 ]]; then cp ${ROOT_DIR}/bootjdk/jdk26/OpenJDK26U-jdk_aarch64_linux_hotspot_26.0.0_10.tar.gz . tar -xf OpenJDK26U-jdk_aarch64_linux_hotspot_26.0.0_10.tar.gz else cp ${ROOT_DIR}/bootjdk/jdk26/OpenJDK26U-jdk_x64_linux_hotspot_26.0.0_10.tar.gz . tar -xf OpenJDK26U-jdk_x64_linux_hotspot_26.0.0_10.tar.gz fi BUILD_CONFIG[BOOT_JDK]${BUILD_JDK_RESOURCE_DIR}/jdk-26.0.010同时在jtreg版本选择部分添加对应版本的测试工具支持elif [[ ${BUILD_CONFIG[MAJOR_NUMBER]} -eq 26 ]] ; then jtregPath$(echo ${BISHENGJDK_DEFAULT_TOOLS_DIR}/jtreg*7.5.2*.tar.gz)步骤4更新构建脚本修改sbin/buildjdk.sh在版本判断逻辑中加入新JDK支持# 在ConfigureArgs函数中添加 elif [[ ${BUILD_CONFIG[BUILD_VARIANT]} ${BISHENGJDK_26_BUILD_VARIANT} ]]; then AddConfigureArg --with-version-build ${BUILD_CONFIG[BUILD_NUMBER]} # 添加JDK26特有的编译参数 AddConfigureArg --with-source-date version步骤5验证与测试完成配置后执行以下命令验证新JDK版本的构建流程# 克隆仓库 git clone https://gitcode.com/openeuler/bishengjdk-build # 执行构建以JDK26 x86_64为例 cd bishengjdk-build export BUILD_VARIANTjdk26 export ARCHx86_64 ./sbin/prepare.sh ./sbin/buildjdk.sh构建成功后检查output/目录是否生成预期的JDK压缩包。建议运行测试脚本验证功能完整性./sbin/testjdk.sh常见问题解决引导JDK版本不匹配错误提示configure: error: Could not find a valid Boot JDK解决确保引导JDK版本符合JDK构建要求通常需要前一个LTS版本。编译参数错误解决参考同系列版本的constants配置文件确保新添加的编译参数与目标JDK版本兼容。测试用例失败解决通过JTREG_TEST_EXCLUDE排除不兼容的测试用例参考sbin/common/constants_jdk25_x86_64.sh中的排除列表。总结通过添加引导JDK、创建常量配置、更新准备脚本和构建脚本四个关键步骤即可为BiSheng JDK-build项目添加新的JDK版本支持。社区欢迎开发者贡献更多版本支持共同完善openEuler生态的JDK构建能力【免费下载链接】bishengjdk-buildBiSheng JDK build and test scripts - common across all releases/versions项目地址: https://gitcode.com/openeuler/bishengjdk-build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从零到一:Windows系统下MySQL 8.0与Workbench保姆级安装与首次连接指南

从零到一:Windows系统下MySQL 8.0与Workbench保姆级安装与首次连接指南

1. 为什么选择MySQL 8.0与Workbench组合 如果你是刚接触数据库开发的Windows用户,MySQL 8.0配合Workbench绝对是最佳入门组合。我五年前第一次搭建开发环境时,试过各种数据库软件,最后发现这个组合既不会太复杂,又能满足学习和小型…

2026/7/16 14:38:31阅读更多 →
FitGirl Repack Launcher终极指南:5步打造你的专属游戏管理中心

FitGirl Repack Launcher终极指南:5步打造你的专属游戏管理中心

FitGirl Repack Launcher终极指南:5步打造你的专属游戏管理中心 【免费下载链接】Fitgirl-Repack-Launcher An Electron launcher designed specifically for FitGirl Repacks, utilizing pure vanilla JavaScript, HTML, and CSS for optimal performance and cust…

2026/7/16 14:38:31阅读更多 →
Windows平台B站第三方客户端终极指南:BiliBili-UWP深度解析与优化

Windows平台B站第三方客户端终极指南:BiliBili-UWP深度解析与优化

Windows平台B站第三方客户端终极指南:BiliBili-UWP深度解析与优化 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端,当然,是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP 在Windows平台上享受流畅的B站观…

2026/7/16 14:38:31阅读更多 →
海洋航行器水动力学与运动控制终极指南:从理论到实践完整教程

海洋航行器水动力学与运动控制终极指南:从理论到实践完整教程

海洋航行器水动力学与运动控制终极指南:从理论到实践完整教程 【免费下载链接】FossenHandbook Handbook of Marine Craft Hydrodynamics and Motion Control is an extensive study of the latest research in marine craft hydrodynamics, guidance, navigation, …

2026/7/16 15:43:44阅读更多 →
终极GameMaker游戏解包与修改实战指南:UndertaleModTool深度解析

终极GameMaker游戏解包与修改实战指南:UndertaleModTool深度解析

终极GameMaker游戏解包与修改实战指南:UndertaleModTool深度解析 【免费下载链接】UndertaleModTool The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!) 项目地址: https://gitcode.com/gh_mirrors/un/Unde…

2026/7/16 15:43:44阅读更多 →
PCB背钻工艺:高速设计中的信号完整性优化

PCB背钻工艺:高速设计中的信号完整性优化

1. PCB过孔设计基础与核心考量在多层PCB设计中,过孔(Via)是实现不同层间电气连接的关键结构。一个典型的过孔由钻孔、孔壁镀铜和焊盘三部分组成。根据连接方式的不同,过孔主要分为三种类型:通孔(Through Ho…

2026/7/16 15:43:44阅读更多 →
FanControl深度解析:从硬件兼容性到智能风扇控制的完整指南

FanControl深度解析:从硬件兼容性到智能风扇控制的完整指南

FanControl深度解析:从硬件兼容性到智能风扇控制的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendi…

2026/7/16 15:43:44阅读更多 →
SpringBoot整合FastDFS与Redis:实战大文件分片上传的完整解决方案

SpringBoot整合FastDFS与Redis:实战大文件分片上传的完整解决方案

1. 为什么需要大文件分片上传?在日常开发中,我们经常会遇到需要上传大文件的场景,比如视频网站、云盘、设计协作平台等。如果直接将大文件一次性上传,会遇到几个典型问题:首先是内存压力。传统上传方式会将整个文件加载…

2026/7/16 15:43:43阅读更多 →
Claude Fable 5在教育内容生成中的教学设计架构能力解析

Claude Fable 5在教育内容生成中的教学设计架构能力解析

如果你正在为教育内容生成而苦恼——无论是制作课程大纲、设计练习题,还是编写教学材料,那么 Claude Fable 5 的出现可能正是你期待的技术突破。但这里有个关键认知需要转变:Fable 在教育领域的真正价值不在于它能比 Opus 生成更多文字&#…

2026/7/16 15:38:43阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →