gpt4 book ai didi

java.io.IOException : %1 is not a valid Win32 application

转载 作者:行者123 更新时间:2023-12-01 14:25:11 26 4
gpt4 key购买 nike

我正在尝试对 XML 文档进行数字签名。为此我有两个选择。有一个由爱沙尼亚认证中心为程序员创建的库,还有一个由银行制作的运行 Java 代码的脚本。如果使用官方(认证中心)库,那么一切都会像魅力一样进行一些调整,但是当涉及到银行脚本时,它会变得疯狂,导致错误:

java.io.IOException: %1 is not a valid Win32 application.
esteid-pkcs11
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.connect(Native Method)
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.<init>(PKCS11Implementation.java:166)
at iaik.pkcs.pkcs11.wrapper.PKCS11Connector.connectToPKCS11Module(PKCS11Connector.java:75)
at iaik.pkcs.pkcs11.Module.getInstance(Module.java:202)
at client.smartcard.SmartcardHelper.initializePKCS11Module(SmartcardHelper.java:46)
at client.smartcard.SmartcardHelper.initialize(SmartcardHelper.java:29)
at client.smartcard.SmartcardHelper.initialize(SmartcardHelper.java:21)
at client.Signer.main(Signer.java:36)
10:03:31 ERROR - Signing failed: PKCS11 initialization failed
java.lang.RuntimeException: PKCS11 initialization failed
at client.smartcard.SmartcardHelper.initializePKCS11Module(SmartcardHelper.java:52)
at client.smartcard.SmartcardHelper.initialize(SmartcardHelper.java:29)
at client.smartcard.SmartcardHelper.initialize(SmartcardHelper.java:21)
at client.Signer.main(Signer.java:36)
Caused by: java.io.IOException: %1 is not a valid Win32 application.
esteid-pkcs11
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.connect(Native Method)
at iaik.pkcs.pkcs11.wrapper.PKCS11Implementation.<init>(PKCS11Implementation.java:166)
at iaik.pkcs.pkcs11.wrapper.PKCS11Connector.connectToPKCS11Module(PKCS11Connector.java:75)
at iaik.pkcs.pkcs11.Module.getInstance(Module.java:202)
at client.smartcard.SmartcardHelper.initializePKCS11Module(SmartcardHelper.java:46)
... 3 more

Esteid-pkcs11 文件是特定于国家/地区的 dll 文件。我在谷歌上阅读了很多针对导致相同错误的问题的回复,但似乎没有一个回复能解决问题。我已经安装了JDK(64位)和JRE(32位)。我认为我尝试打开的 .dll 文件可能是 32 位的,因此我更改了 JAVA_HOME 路径以指向 32 位 JRE,但随后它显示了类似

cannot load IA 32-bit .dll on a amd 64-bit platform.

所以我认为这不是位的问题。在摆弄环境变量几个小时后,我认为这可能是银行制作的脚本的问题。可以这样吗?如果不是还有什么可能导致此错误?

编辑:显然我尝试使用 C 库进行签名并且它有效,但是当使用 Java 库时,它给了我一个错误。

java.io.IOException:%1 不是有效的 Win32 应用程序。
opensc-pkcs11.dll

我 100% 确定 opensc-pkcs11.dll 是一个 64 位 dll,但我想知道控制台是否无法访问 system32 文件夹。可以这样吗?

最佳答案

错误

由以下原因引起:java.io.IOException:%1 不是有效的 Win32 应用程序。

这是我尝试通过 Sun PKCS#11 Provider 在 64 位 Java 环境中使用 32 位 PKCS#11 DLL 时得到的结果。

当我切换到 64 位 PKCS#11 DLL 时,错误不再发生。

我认为您的“esteid-pkcs11”文件是一个 32 位 DLL。

关于java.io.IOException : %1 is not a valid Win32 application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com