javax.smartcardio 在 macOS Monterey 上找不到 PCSC 阅读器

javax.smartcardio on macOS Monterey does not find PCSC readers

我想使用 Java 8/11 在 macOS Monterey (12.0.1) 上访问 PC/SC Reader (Reiner SCT) . (javax.smartcardio 已经适用于 Java 11)。同时使用 Java 版本,

TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();

returns 一个空的读者列表。我发现了一个类似的issue already for OS X Big Sur。因此,我试图使用参数作为 CLI 参数

来启动我的应用程序
-Dsun.security.smartcardio.library="/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC"

也可以通过运行时间码

System.setProperty("sun.security.smadtcardio.library", "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC");

-- 但列表仍为空。

当我在 mac 上列出文件夹 /System/Library/Frameworks/PCSC.framework/Versions/Current/ 的内容时,macOS Monterey 上没有 PCSC(只有 ResourcesXPCServices_CodeSignature)。因此,我假设缺少某些东西。

所以问题是,我需要做什么才能让 javax.smartcardio 在 macOS 蒙特雷工作。

System.setProperty 的选项适合我。

我的唯一问题是 属性 名称中有错字。正确的 属性 名称是 sun.security.smartcardio.library