javax.smartcardio с Java 9 и ClassPath
Под Java 9 различные пакеты по умолчанию были переключены на пакеты Java EE (больше не включаются в JVM - опционально добавляются). Это не проблема для большинства из них, потому что я просто указываю пакеты Java EE как зависимости. Однако с указанным пакетом javax.smartcardio я не нашел ничего, где он мог бы приземлиться (github-jee, нет результатов поиска Maven,...). Может кто-нибудь дать мне совет, где взять последнюю версию пакета? Спасибо много!
Я только что узнал, что javax.smartcardio все еще существует как модуль java.smartcardio. Тем не менее, это не помогает мне, потому что я все еще работаю с ClassPath в моем проекте и мне придется работать с Jigsaw, чтобы получить его.
3 ответа
Использовать module-info.java
требовать java.smartcardio
модуль. Это сработало для меня.
Я разместил здесь более подробный ответ: /questions/37917459/javaxsmartcardio-v-java-9-10-11-12-i-t-d/55274927#55274927
Я проверил, что во время выполнения javax.smartcardio доступен из коробки, если вы находитесь на пути к классам.
Нет --add-modules не требуется.
У меня была та же проблема, потому что я использовал проект с Java 8 для времени компиляции.
Вы должны добавить это в свой POM
<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>XXXX</version>
<scope>provided</scope>
</dependency>
Тогда компилируется нормально.