BiSheng JDK-build扩展开发:如何添加新的JDK版本支持 📅 2026/7/16 14:43:36 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),仅供参考