带有 Java 9 和 ClassPath 的 javax.smartcardio

Posted

技术标签:

【中文标题】带有 Java 9 和 ClassPath 的 javax.smartcardio【英文标题】:javax.smartcardio with Java 9 and ClassPath 【发布时间】:2018-01-10 15:54:57 【问题描述】:

在 Java 9 下,各种默认包已切换为 Java EE 包(不再包含在 JVM 中 - 可选择性添加)。 这对他们中的大多数人来说不是问题,因为我只是将 Java EE 包指定为依赖项。但是,使用上述包 javax.smartcardio,我没有找到任何可以到达的地方(github-jee,没有 Maven 搜索结果,...)。有人可以给我提示在哪里可以获得最新版本的软件包吗?非常感谢!

我刚刚发现 javax.smartcardio 仍然作为模块 java.smartcardio 存在。但是,这对我没有帮助,因为我仍在我的项目中使用 ClassPath,并且必须使用 Jigsaw 才能获得它。

【问题讨论】:

我刚刚发现 javax.smartcardio 仍然作为一个模块存在 java.smartcardio 那么,你现在在问什么? module java.smartcardio 出现在JDK 本身? 我在没有模块描述符的情况下使用我的应用程序。所以我不能使用模块'java.smartcardio'。如果我要使用 module-info.java,我应该在完整的应用程序中使用模块系统。 我的目标是创建一个包含 javax.smartcardio 或自动读取模块 java.smartcardio(manifest?) 的 JAR。这样它就可以与 Java 9 一起运行。同样,使用 module-info 似乎对我来说不是解决方案。 我有同样的问题,如果你解决了请告诉我。 【参考方案1】:

我已验证,如果您在类路径中,则在运行时 javax.smartcardio 是开箱即用的。 不需要 --add-modules。

【讨论】:

【参考方案2】:

使用module-info.java 来要求java.smartcardio 模块。这对我有用。

我在这里发布了更详细的答案: https://***.com/a/61721513/7287324

【讨论】:

以上是关于带有 Java 9 和 ClassPath 的 javax.smartcardio的主要内容,如果未能解决你的问题,请参考以下文章

JDK PATH 和 CLASSPATH环境变量的作用及其配置

命令行java -classpath 的使用

ZT : JAVA和JAVAC 命令行;java 带有包名编译并运行,附带外部依赖jar包运行

Java扫描classpath指定包路径下所有class

Java中跳出多重嵌套循环的方法

Java JDK下载安装及配置