2

我们有使用智能卡签名的小程序。一切都很好,直到 Mac OS 上的新 java 更新。我会解释的。当 macos 有 java 6 和特殊插件时,一切正常。但是现在他们删除了他们的插件,用户必须从 Oracle 网站下载适用于 java 7 的浏览器插件。

Applet 仍然可以看到读卡器,但在其中看不到智能卡。我们使用 reader.isCardPresent() 方法,它返回“false”,没有异常等,一切正常,读卡器中没有卡。我们恢复操作系统的备份,当有6个java和MacOS自己的插件时,一切正常。但是我们有很多客户刚买了新的 iMac 或 MacBook,他们不能使用 6 java 和苹果的插件。

一切都在 Windows 上运行。我们不使用任何已弃用的方法。似乎是 Oracle 的 Mac OS 插件的问题。

任何人都有类似的问题,或者您可能有任何想法。

4

1 回答 1

2

我只是做了一些测试:从示例中获取代码并稍微修改它。在 macosx 10.8.2 中的 jdk1.7.0_09 上运行示例。PCSC 框架 1.4.0。

terminal.isCardPresent() 返回 false,但可以访问卡片。当 java 同时运行 32 位和 64 位模式时存在错误。Pcscd 仅在 32 位模式下运行,因为通用 pcsc 驱动程序仍然仅是 32 位。

在 pcscd 调试日志中,我在 SHMMessageReceive 中看到一些解析错误,因此错误可能在 java 或 pcsc 框架中(winscard_msg.cpp)。

于 2012-11-27T10:32:07.740 回答