Page 1 of 1
!!Help!! Can't access any class in smartcardio
Posted: Thu Nov 10, 2016 11:43 pm
by lefibr
!!Help!!
When I use javax.smartcardio, I can't access any classes in this package.Why? Is there anyone tell me what happened?
Gracias!
My code:
Code: Select all
// show the list of available terminals
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
Card card = terminal.connect("T=0");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
ResponseAPDU r = channel.transmit(new CommandAPDU(c1));
System.out.println("response: " + toString(r.getBytes()));
// disconnect
card.disconnect(false);
Re: !!Help!! Can't access any class in smartcardio
Posted: Fri Nov 11, 2016 3:10 am
by Crawford
If you use eclipse, hover the mouse pointer over classes which has problems and then check the prompt.
Re: !!Help!! Can't access any class in smartcardio
Posted: Fri Nov 11, 2016 4:49 am
by lefibr
Here is the prompt:
Access restriction: The type 'TerminalFactory' is not API (restriction on required library 'C:\Program Files\Java\jre1.8.0_101\lib\rt.jar')
And I have resolved this problem just now.
Re: !!Help!! Can't access any class in smartcardio
Posted: Fri Nov 11, 2016 4:54 am
by lefibr
My Solution:
1 Package Explorer;
2 Right click the project -> Build Path -> Configure Build Path ...;
3 Dialog Properties for MyProject -> Java Build Path -> Tab "Libraries";
4 JRE System Library -> Access rules -> Edit;
5 Type Access Rules -> Add...;
6 Resolution: Accessible and Rule Pattern: javax/smartcardio/*;
7 OK -> OK -> OK;
8 I can access all Class in package javax.smartcardio!
Re: !!Help!! Can't access any class in smartcardio
Posted: Fri Nov 11, 2016 5:36 am
by Crawford
Thanks for your back to post the solution. This wiil be a reference for those who will experience the same problem with you.
Re: !!Help!! Can't access any class in smartcardio
Posted: Sun Sep 06, 2020 6:46 pm
by andromeda92
For me, the solution don't work all class method from smartcardio can't be resolved.
I use Eclipse 2020-06 64 bit last version windows 10
any idea ?
what is wrong ?
EDIT:
Resolved, it's not javax/smartcardio/*; but javax/smartcardio/**
Re: !!Help!! Can't access any class in smartcardio
Posted: Sun Sep 06, 2020 8:59 pm
by kuafu
Code: Select all
grant codeBase "jrt:/java.smartcardio" {
permission javax.smartcardio.CardPermission "*", "*";
permission java.lang.RuntimePermission "loadLibrary.j2pcsc";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.security.jca";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.security.util";
permission java.util.PropertyPermission
"javax.smartcardio.TerminalFactory.DefaultType", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "sun.arch.data.model", "read";
permission java.util.PropertyPermission
"sun.security.smartcardio.library", "read";
permission java.util.PropertyPermission
"sun.security.smartcardio.t0GetResponse", "read";
permission java.util.PropertyPermission
"sun.security.smartcardio.t1GetResponse", "read";
permission java.util.PropertyPermission
"sun.security.smartcardio.t1StripLe", "read";
// needed for looking up native PC/SC library
permission java.io.FilePermission "<<ALL FILES>>","read";
permission java.security.SecurityPermission "putProviderProperty.SunPCSC";
permission java.security.SecurityPermission
"clearProviderProperties.SunPCSC";
permission java.security.SecurityPermission
"removeProviderProperty.SunPCSC";
};
add policy to default.policy in {Your JDK path}\lib\security. MY JDK is JDK14.
JDK8 add policy to {java.home}\lib\security\java.policy (Windows)