Home > Enterprise >  javax.smartcardio on macOS Monterey does not find PCSC readers
javax.smartcardio on macOS Monterey does not find PCSC readers

Time:01-02

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

  • Related