Javax.SmartCardIO - 未找到 TerminalFactory 重新插入的设备
Posted
技术标签:
【中文标题】Javax.SmartCardIO - 未找到 TerminalFactory 重新插入的设备【英文标题】:Javax.SmartCardIO - TerminalFactory replugged device not found 【发布时间】:2016-01-22 22:09:31 【问题描述】:我的程序有点问题。 第一次插入阅读器一切正常,程序找到阅读器,但是在程序中我断开阅读器,然后重新插入,然后再次运行搜索,程序无法找到读者。我只有 CardException 和消息:list() failed
有人知道怎么解决吗?
TerminalFactory factory = TerminalFactory.getDefault();
System.out.println(factory);
List<CardTerminal> terminals = new ArrayList<CardTerminal>();
if (factory == null)
return terminals;
try
terminals = factory.terminals().list();
catch (CardException e)
System.out.println(e.getMessage());
我也试过这个:
try
factory = TerminalFactory.getInstance("PC/SC", null, new jnasmartcardio.Smartcardio());
catch (NoSuchAlgorithmException e1)
e1.printStackTrace();
谢谢帮助。
【问题讨论】:
见***.com/questions/16921785/… 【参考方案1】:在不知道如何使用代码的 sn-p 的情况下,请阅读 jnasmartcardio 和上下文的生命周期。在最后一个读取器断开连接后,Windows 会终止资源管理器(从而使句柄无效)。
【讨论】:
我在睡眠循环中执行 1500 毫秒。是否有可能在不使用 jnasmartcardio 的情况下以某种方式解决这个问题?它仅在 Windows 10、Windows 8.1 和 Windows 8 上发生。如何手动重置对象 TerminalFactory 以获取连接到计算机的设备的新列表?以上是关于Javax.SmartCardIO - 未找到 TerminalFactory 重新插入的设备的主要内容,如果未能解决你的问题,请参考以下文章
带有 Java 9 和 ClassPath 的 javax.smartcardio
在 Open JDK 11(Redhat)上找不到 javax.smartcardio.*
使用 javax.smartcardio 读取 NFC Mifare Ultralight 卡