I want to access a PC/SC Reader (Reiner SCT) on macOS Monterey (12.0.1) using Java 8/11. (javax.smartcardio
already works in Java 11). With both Java Version,
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
returns an empty list of readers. I found a similar issue already for OS X Big Sur. Hence I was trying to start my application with the parameter as CLI argument
-Dsun.security.smartcardio.library="/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC"
but also via the run time code
System.setProperty("sun.security.smadtcardio.library", "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC");
-- but the list stays empty.
When I list the content of the folder /System/Library/Frameworks/PCSC.framework/Versions/Current/
on my mac, there is no PCSC
on macOS Monterey (only Resources
, XPCServices
and _CodeSignature
). Hence I assume there is something missing.
So the question is, what do I need to do, to make javax.smartcardio
work on macOS Monterey.
CodePudding user response:
The option with System.setProperty
works for me.
The only problem in my case was, that there was a typo in the property name. The correct property name is sun.security.smartcardio.library