程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Java 模块真的无法访问类路径吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Java 模块真的无法访问类路径吗??

开发过程中遇到Java 模块真的无法访问类路径吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于Java 模块真的无法访问类路径吗?的解决方法建议,希望对你解决Java 模块真的无法访问类路径吗?有所启发或帮助;

我对 Java 9 模块应该具有的假设行为有些困惑。在 O'Reilly 的 Java 9 Modularity 中,我阅读了以下声明:

模块不能读取类路径,所以我们的模块不能访问类型 类路径,如图 8-1 所示。

...

未命名模块导出类路径上的所有代码并读取所有 其他模块。但是有一个很大的限制:未命名的模块 本身只能从自动模块中读取!

但是,在尝试解决 Eclipse 上的问题(maven 依赖项位于类路径而不是模块路径中)时,我注意到我的应用程序的启动器设置与我所阅读的内容冲突。这是它执行的命令行:

/opt/jdk-16+36/bin/java -Dfile.enCoding=UTF-8
-p /home/lgmonezi/workspace/my.test/target/classes
-classpath /home/lgmonezi/.m2/repository/org/HSQLdb/HSQLdb/2.6.0/HSQLdb-2.6.0.jar
-XX:+ShowCodeDetailsInExceptionmessages
-m my.test/net.lgmonezi.test.main.fileNode

然存在 module-info.java,但应用程序唯一的外部依赖是 HSQLdb-2.6.0 jar。但它在类路径中,并由显式模块访问,而不是自动模块。代码运行良好。不应该是抛出异常吗?

解决方法

我们的模块无法访问类路径上的类型

您的代码没有(直接)使用任何 HSQLDB 类,因此没有访问检查在起作用。

类路径上的 JDBC driver 使其通过 java.sql.Driver 加载机制自动向 JDBC 框架注册 service-provider 接口的实现。 (参见 JDBC 4 specification,第 9.2.1 节)

除了自动注册过程之外,没有代码(您的或框架)直接“访问”任何 HSQLDB 代码。都是通过接口完成的。

大佬总结

以上是大佬教程为你收集整理的Java 模块真的无法访问类路径吗?全部内容,希望文章能够帮你解决Java 模块真的无法访问类路径吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Java