javax.smartcardio in Java 9, 10, 11, 12... etc

6.9k Views Asked by At

What happened to the javax.smartcardio library from Java 9 onwards? Is there an alternative or some way to obtain it in JAR?

2

There are 2 best solutions below

0
On

After the java becomes "Modular Development", javax.smartcardio has also been modularized.

If you want to use the package after java 9, create module-info.java.

Please see the image.

enter image description here

Or you can just degrade the compiler version to JDK 1.8:

https://dzone.com/articles/java-9-modularity-jigsaw

1
On

After some hours searching on the web, thanks to the answer above, and as far as I understand, Java 9 and later are modular, which is a language improvement planned some years ago. Also, after the new Oracle rules update, some packages were moved from the SE to the EE version.

The module smartcardio is now optional, but it is still included in the SE. So if you want to use it, you have to require it in a module-info.java.

Example:

I have created this file in my maven project: src/main/java/com/module-info.java

module com.chema.nfc_rfid_reader_writer {
    requires java.smartcardio;
    exports com.chema.nfc_rfid_reader_writer;
}

And that's all

https://stackoverflow.com/a/59477660/7287324 https://www.oracle.com/corporate/features/understanding-java-9-modules.html

https://docs.oracle.com/en/java/javase/11/docs/api/index.html https://docs.oracle.com/en/java/javase/11/docs/api/java.smartcardio/javax/smartcardio/package-summary.html