You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17中patch jdk.unsupported模块遇ResolutionException的解决办法

解决Java 17中patch jdk.unsupported模块运行冲突的方案

问题根源在于你使用了完整的OpenJDK 8 rt.jar进行模块patch,其中包含的java.time.zone包与Java 17中java.base模块导出给jdk.unsupported的同包冲突。只需要提取rt.jar中你实际需要的sun.misc相关类即可解决:

  1. 提取sun.misc类文件
    从OpenJDK 8的rt.jar中仅导出sun/misc目录下的所有类:
jar xf /path/to/rt.jar sun/misc

执行后会在当前目录生成sun/misc文件夹,包含BASE64Decoder.class、BASE64Encoder.class等目标类。

  1. 编译代码
    使用提取后的目录进行模块patch编译:
javac --patch-module=jdk.unsupported=/path/to/extracted-sun-misc-dir TestDecoder.java

(注:/path/to/extracted-sun-misc-dir是包含sun文件夹的上级目录)

  1. 运行程序
    同样用提取后的目录patch模块运行,无需再将rt.jar加入classpath:
java --patch-module=jdk.unsupported=/path/to/extracted-sun-misc-dir TestDecoder

这样就避免了无关包的冲突,同时保留了sun.misc.BASE64Decoder的原有算法行为。

内容的提问来源于stack exchange,提问作者gbear605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:25:14