Problem:

使用JPackage为Windows创建可执行文件不适用于密钥库.它返回一个错误.

Code:

KeyStore.getInstance("Windows-MY");

将引发异常:

java.security.KeyStoreException: Windows-MY not found
  at java.base/java.security.KeyStore.getInstance(Unknown Source)
 ...
Caused by: java.security.NoSuch算法rithmException: Windows-MY KeyStore not available
  at java.base/sun.security.jca.GetInstance.getInstance(Unknown Source) at java.base/java.security.Security.getImpl(Unknown Source)

运行Windows的jPackage并try 执行KeyStore.getInstance("Windows-MY");会返回上面的错误.

在没有JPackage的情况下,在IDE中运行应用程序工作得很好.

推荐答案

对Windows-My密钥库的支持是模块jdk.crypto.mscapi的一部分.我猜这不包括在您当前的设置中,直到jpackage.我没有太多使用模块的经验,但我猜您需要在模块-info.java中添加requires jdk.crypto.mscapi;,或者-正如您在注释中提到的-将其添加到jpackage命令行中,并添加--add-modules(例如--add-modules jdk.crypto.mscapi).

Java相关问答推荐

与不同顺序的组进行匹配,不重复组但分开

在Eclipse中调试未导出的JDK模块的Java包

try 从REST API返回对象列表时出错

使用htmlunit和java单击按钮

如何在太阳系模拟器中添加月球?

为什么在下面的Java泛型方法中没有类型限制?

try 在两个不同数组的数字之间求平均值

如何使这两种方法合二为一?

为什么这种递归会有这样的行为?

在线程Java中调用Interrupt()之后调用Join()

如何判断元素计数并在流的中间抛出异常?

这是JavaFX SceneBuilder的错误吗?

Vaadin Flow:设置密码显示按钮属性

找到差异最小的回文

为什么单例实例持有者的循环引用不会抛出 StackOverflowError?

时间戳的日期时间字符串在 Select 时显示为本地时区而不是 UTC

使用 SLF4J 时如何动态 Select 消息的日志(log)记录级别?

如何在 Spring boot 中从 application.yaml 创建记录

java.util.zip.ZipException:当前没有 ZIP 条目,但条目存在

使用 Maven 多模块,Spring Boot - 在 IntelliJ 与 Eclipse 中创建目录的问题