我试图使用Hibernate将项目“升级”到Java 9,但是在使模块正常运行方面遇到问题。
我的相关部分module-info.java
看起来像这样:
module test {
...
requires java.base;
requires hibernate.core;
requires javax.transaction;
requires java.sql;
}
和我的POM中的相关依赖项是
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec
,2.0.0.Alpha1org.hibernate:hibernate-core
,5.2.12。最后javax.transaction:javax.transaction-api
,1.2问题是,如果我运行该程序,则会得到NoClassDefFoundError
forjavax.transaction.SystemException
。我调查了一下,很显然,我的模块缺少requires
onjavax.transaction
。
因此,我在上添加了模块依赖项javax.transaction-api
。然后我继续尝试再次运行该程序-
现在我不见了java.sql.SQLException
。
这是我遇到的问题:如果我在java.sql
包含此类的模块上添加依赖项,则最终会发生冲突:
模块
javax.transaction.xa
从java.sql
和读取包javax.transaction.api
java.sql
并javax.transaction.api
包含不同的软件包,并且有一个共同的(javax.transaction.xa
),
但我都需要它们 。
我该如何处理?有什么简单的我想念的吗?
使用1.3版而不是1.2 javax.transaction-api
版,此版本javax.transaction.xa
已被删除。
Maven的依赖:
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.3</version>
</dependency>
食氧;视窗7;JDK 9决赛从9日开始,21日结束;JUnit4.12和现有的应用程序。作为起点,可以编译、执行应用程序,并且所有JUnit测试都显示为绿色。现在我们使用eclipse生成文件模块信息。JAVA结果是: 但有一个错误:junit无法解析为模块。问题是:如何告诉文件junit没有定义任何模块,应该在兼容模式下运行?
我试图实现java.time来解析不同的日期格式并返回为java.sql.日期。但是,如果我使用java.sql.Date.value(LocalDate date),我将失去时间。如何获得与java.sql.日期(java.util.日期date.get时间())相同的方式?我的应用程序中可能的格式是。 ormatter.of模式("yyyy-MM-dd");日期时间格式(DateTimeFor
我对Java编程比较陌生,我正在上的课正在向我介绍MySQL。我使用的是JDK 10.0.2,我的课有JDK 1.7或1.8的说明。我刚刚下载了MySQL连接器文件,提取了它,并将“mysql-connector-java-8.0.12.jar”文件放在桌面上的临时文件夹中。我的导师想让我将该文件复制到“JAVA_HOME\jre\lib\ext”。然而,通过这里,我了解到,从JDK 9及更高版本
Java文档可以使用工具生成。 它目前以格式生成文档。 在java 9中,可以通过在命令行参数中使用选项生成格式的文档。 旧式的java文档 考虑F:\worksp\java9文件夹中有一个Java文件:Tester.java,其代码如下 - 可以运行jdk 7 的javadoc工具来生成文档。 使用标志运行jdk 9的javadoc工具以生成新类型的文档。 打开生成的文件,如下所示 -
类是在Java 8中引入的,可以通过设置其值和状态显式来完成。 它可以用作。 它支持未来完成时触发的相关函数和操作。 在Java 9中,CompletableFuture API进一步得到了增强。 以下是对API进行的相关更改。 支持延迟和超时。 改进了对子类的支持。 添加了新的工厂方法。 1. 支持延迟和超时 如果在给定超时之前未完成,则此方法使用给定值完成。 如果在给定的超时之前没有完成,则此
主要内容:takeWhile(Predicate接口),dropWhile(Predicate接口)流(Stream)是在Java中引入的,以帮助开发人员从一系列对象中执行聚合操作。在Java 9中,使用较少的方法就可以使流更好。 takeWhile(Predicate接口) 语法 方法获取所有值直到返回。 在有序流的情况下,它返回一个流,该流包含从此流中匹配给定的元素的最长前缀。 示例 方法获取所有,和值,然后当字符串为空,它将停止执行。 dropWhile(Predicate接口) 语法 方