简体   繁体   中英

Could not initialize class com.linuxnet.jpcsc.PCSC in JCManager

My ACS ACR38 reader works properly via it's SDK and GPJ but it's look like that JCManager can't access to it. This is output of JCManagr when I open it :

在此处输入图片说明

This is the error message :

Exception in thread "Thread-3" java.lang.NoClassDefFoundError: Could not initialize class com.linuxnet.jpcsc.PCSC
    at com.braicu.jcm.card.CardWorker.disconnectCard(CardWorker.java:507)
    at com.braicu.jcm.JCManager$22.construct(JCManager.java:619)
    at com.braicu.jcm.layout.MySwingWorker$2.run(MySwingWorker.java:108)
    at java.lang.Thread.run(Unknown Source)

I downloaded jpcsc.dll and copied it in this directories :

  1. C:\\Windows\\
  2. C:\\Windows\\System
  3. C:\\Windows\\System32
  4. D:\\jcManager\\res

D:\\Java Card\\jcManager\\res

But when I try to register these files with regsvr32 command in the Command-Prompt I receive this error : 在此处输入图片说明

I restart my system, and problem didn't solve yet.

Q: How can I handle this problem?

I appreciate your time and consideration.

jpcsc is a very old library that does not seem to be maintained anymore. The last time I took a look at its structure and code I was actually rather horrified.

It looks however that somebody took notice and rewrote the tool to use javax.smartcardio . This much newer PCSC interface took quite a few hints from the older jpcsc and did a much better job at it.

You can find the source on github . I would recommend you upgrade to that version.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM