当前位置: 首页 > 面试题库 >

我可以从Java模块中排除导出的软件包吗?

宗政海
2023-03-14
问题内容

模块jta和java.sql将包javax.transaction.xa导出到模块dom4j

正如你所看到的,这两个模块jtajava.sql输出相同的包,javax.transaction.xa。但是,其中的包jta具有我要求的类,这些类在中不存在java.sql。我根本不需要java.sql模块,但是我需要java.sql.SQLException

是否可以防止java.sql出口javax.transaction.xa


问题答案:

该JTA GitHub的读取确认什么@Alan中已经指出了以下评论 -

该Java™Java事务API(JTA)的独立发行版使用Java平台模块系统“自动”模块名称 java.transaction,以匹配JDK
9中使用的模块名称。将来的版本将包含完整的模块元数据。而且, javax.transaction.xa程序包现在归Java SE所有。

您可以使用Maven(例如)使用以下版本:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>

这是的发行说明JTA1.3MR

此外, JEP 320:Remove Java EE和CORBA
Modules
在同一方面进行了详细说明-

…该javax.transaction.xa软件包支持JDBC中的XA事务。此“
XA程序包”
与JDBC在java.sqlJava SE
9的java.sql模块中位于同一位置。由于该模块不可升级,因此独立版本的JTA不可能覆盖XA程序包的Java SE版本。

并进一步说明您解决方案的可扩展性

…为了便于维护,将来可能会将Java SE中的XA软件包移至其他不可升级的模块中,但从架构上来看,它将长期与JDBC一起保留在Java SE中…

并按计划

在2018年初,JTA 1.3将被定义为仅包含CORBA互操作包。JAR文件将相应更新。



 类似资料:
  • 问题内容: 我有以下程序: module-info.java Main.java 该程序使用以下选项成功编译: 但是,当我添加参数时,它将失败: 基本上,这两个命令是等效的。那么为什么要禁止后者呢? 另外,由于IDEA将参数传递给javac,因此,如果我的项目需要内部API,则无法在IDEA中进行开发。 我正在使用JDK 9 + 178。 问题答案: 这似乎从这个bug票是不能结合使用,和。 从链

  • 问题内容: 例如,第三方库对该​​程序包使用非常复杂的目录结构。我可以一次导入它们吗?明星似乎只能导入一个目录级别。 问题答案: 假设您要询问是否可以执行以下操作: 那么答案是 否定的 。您可以进行的最大导入是带有星号的单个包装。 JLS(第7.5节)定义了导入语句的结构。 另外,对于编译器一次导入一堆软件包来说是有问题的。如果两个包提供相同的类型,两个包都被导入,并且在类中使用了该类型,则会发生

  • 问题内容: 我遇到一个问题,其中同一类的多个版本显示在我的类路径中。有问题的班级是。我要使用的版本由引入。但是,我们还使用了Jira rest客户端库,该库依赖于较旧版本的jersey(),该版本包含捆绑在jar中的java.ws软件包。 这是构建文件中的示例片段: 我无法删除它,因为它使用了与新版本不同的软件包名称,并且会导致在Jira客户端中找不到类def的异常。 据我所知,目前我的选择是:

  • 我试图将应用程序升级到Java11.0.2,从Java8。这是我使用拼图模块的第一步! 我的应用程序使用Guice,以及和扩展。 这是我当前的: ` 该应用程序是基于Maven和当我运行我得到没有错误。但是在Eclipse(2018-12)中,我有这个错误“包com.google.inject可以从多个模块访问”: 我试着在但我显然需要这三个。 我能做些什么来消除这个错误吗?或者这是一个Eclip

  • 问题内容: 我正在通过Anaconda 2.1.0发行版使用scipy和numpy。我使用Spyder作为我的Python IDE。 当我运行时 ,我无法通过以下方式访问子包,例如optimize,linalg,cluster等。 但是,运行时,我可以通过访问所有子包,例如linalg,random,matrixlib,多项式,测试等。 两种进口的工作方式不同,是否有原因?为什么不将所有scipy

  • 问题内容: 我可以从Node.js中运行的javascript文件安装NPM软件包吗?例如,我想要一个脚本,让我们称它为“ script.js”,该脚本以某种方式(…是否使用NPM …)安装了通常可通过NPM获得的软件包。在此示例中,我想安装“ FFI”。(npm安装ffi) 问题答案: 确实可以以编程方式使用 npm ,并且在文档的较早版本中对此进行了概述。此后,它已从官方文档中删除,但仍在源代