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

使用jpackage打包Windows程序时无法打开Windows-MY密钥库

解决JPackage打包Windows程序后无法访问Windows-MY密钥库的问题

出现这个异常的核心原因是:JPackage默认构建的运行时镜像会自动裁剪未明确声明依赖的模块,而Windows-MY密钥库的实现依赖于sun.security.mscapi模块,该模块未被默认包含进打包后的运行时环境中。而在IDE直接运行时,完整JDK会自动加载该模块,因此不会报错。

以下是针对性的解决步骤:

1. 模块化项目(含module-info.java)

在你的module-info.java文件中添加对目标模块的依赖声明:

module your.module.name {
    requires sun.security.mscapi;
}

重新执行JPackage打包命令即可,此时打包工具会自动将该模块包含进运行时镜像。

2. 非模块化项目

在JPackage打包命令中添加--add-modules参数,明确指定需要包含的模块:

jpackage --add-modules sun.security.mscapi [其他打包参数]

该参数会强制将sun.security.mscapi模块加入到打包后的运行时环境中。

额外注意事项

  • 确保打包使用的JDK是Windows版本的OpenJDK/OracleJDK,sun.security.mscapi是Windows平台特有的模块,跨平台JDK镜像不包含该组件。
  • 若使用了--runtime-image参数自定义运行时镜像,需提前用jlink命令生成包含sun.security.mscapi模块的镜像,再传入JPackage使用:
    jlink --add-modules sun.security.mscapi,java.base,... [其他jlink参数] --output my-runtime-image
    jpackage --runtime-image my-runtime-image [其他打包参数]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:40:01