问题标签 [java-16]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1216 浏览

java - 在 JDK 16 中使用 PowerMock

Java 反射越来越受限制:

  • 最高 Java 8 允许所有操作
  • 从 Java 9 到 15 你仍然可以执行这些操作,但是你会收到一个警告
  • 从 Java 16 起,模块之间的操作被禁止(好吧,仍然可以通过一些特殊的参数传递给 JVM)

当使用严重依赖反射的库时,这是一个严重的问题,比如PowerMock使用它来模拟测试中的对象。

我创建了这个简单的例子来说明这个问题。这是pom.xml

通过这个简单的测试SomeTest.java

然后,如果我们运行命令mvn clean test,我们将得到错误:

奇怪的是,如果我们将这一位添加到 中pom.xml,问题就消失了:

任何可以帮助我的人:

  • 如何在 JDK 16 中使用 PowerMock?
  • JDK 16 甚至支持 PowerMock 吗?
  • 是否使用Java 模块解决了这个问题?
  • 为什么添加 Spring Boot 作为父级可以解决问题?
0 投票
0 回答
75 浏览

java - 无论我们做什么,流都比 For Loop 慢

我有一个非常简单的程序

Java 8中执行时,以下是 o/p

爪哇吨/吨

在java 16中执行相同

java t/T.java

java 11中执行时

java t/T.java

这表明无论我们使用哪个版本的 JDK,流都比基本的 for 循环慢。我的理解正确吗?我的印象是 JDK 8 可能会更慢,但在更高版本的 JDK 中不会。

0 投票
1 回答
352 浏览

spring-boot - 为什么我在 JDK 16.0.1、Spring Boot 2.5.1 和 Spring Data MongoDB 上使用默认配置的 Kotlin 1.5.10 得到“NoSuchFieldException:handle”?

新的新建项目在 JDK 16.0.1 上使用 Kotlin 1.5.10 和 Spring Boot 2.5.1(来自 Gradleorg.springframework.boot插件版本2.5.1)和 Spring Data MongoDB(通过org.springframework.boot:spring-boot-starter-data-mongodb-reactive)。我的 mongo 依赖项是testImplementation("de.flapdoodle.embed:de.flapdoodle.embed.mongo")- 请注意缺少的版本。这得到了解决de.flapdoodle.embed:de.flapdoodle.embed.mongo:3.0.0de.flapdoodle.embed:de.flapdoodle.embed.process:3.0.1

当我运行如下声明的集成测试时,

控制台出现如下异常,但测试成功。有什么办法可以消除噪音?

0 投票
1 回答
629 浏览

java - Selenium 是否适用于 Java 16?罐子都在那里,但导入不起作用

从相对初级的 Java 背景学习 Selenium。根据所有指南下载 JAR 并将它们导入 Eclipse,但它们与代码的功能没有任何关系。在网上到处搜索,但除非我发疯,否则找不到任何东西。附加的屏幕截图显示了引用的库以及代码:代码和罐子

代码本身是:

0 投票
0 回答
302 浏览

java - 关于模块控件的 javafx 错误

尝试在 javafx 中运行此简单代码时出现错误。

我得到的错误如下:

线程“JavaFX 应用程序线程”java.lang.IllegalAccessError 中的异常:类 mrpropop.CustomColorPicker(在未命名模块 @0x399f8194 中)无法访问类 com.sun.javafx.scene.control.CustomColorDialog(在模块 javafx.controls 中),因为模块 javafx。控件不会将 com.sun.javafx.scene.control 导出到未命名模块 @0x399f8194

我正在使用 Eclipse IDE,并且我有 java 16。

我尝试使用以下 VM 参数运行该类

但是,它仍然没有运行

有人可以帮忙吗?

0 投票
1 回答
166 浏览

java - 正则表达式 \p{Cs} 与 Java 16 中的符号不​​匹配

有谁知道为什么正则表达式与Java 16\p{Cs}中的符号不​​匹配?它曾经在 Java 11 中与之匹配。

爪哇 11

爪哇 16

0 投票
0 回答
204 浏览

java - 由于测试阶段权限被拒绝异常,Maven 构建失败

我正在使用 Maven 3.8.1 和 Jdk16 来构建一个非常简单的 Spring Boot 应用程序。

但是,它在测试阶段失败了。堆栈跟踪表明在运行 Maven Surefire 插件期间权限被拒绝,如下所示。任何帮助/想法都非常感谢。

太感谢了!

但是,它在测试阶段失败了。堆栈跟踪表明在运行 Maven Surefire 插件期间权限被拒绝,如下所示。任何帮助/想法都非常感谢。

太感谢了!

0 投票
1 回答
133 浏览

java - Spring 4.x 兼容 Java 16

我目前正在将我的应用程序从 Java 8 迁移到 Java 16,目前,我正在运行 Spring 4.x。这个 Spring 4.x 是否与 Java 16 兼容,或者我需要将 Spring jar 升级到最新版本?

0 投票
1 回答
240 浏览

java - 如何通过 Gradle 包提供 JAXB 依赖?

TLDR:必须包含哪些包(以及哪些范围):

  • 在库中使用 JAXB
  • 在图书馆中使用 XJC
  • 在该库中运行测试
  • 将库作为依赖项包含到另一个库中,而不会出现与 JAXB 相关的运行时错误

细节:

我正在使用带有 JDK 16 和 Gradle 的 JAXB 和 XJC。我创建了一个项目 A (即bayern.steinbrecher:SepaXMLGenerator),其中包含带有以下代码段的 JAXB:

这工作正常。我什至可以执行我为项目 A 创建的包含测试。

但是,如果我尝试bayern.steinbrecher:Green2通过声明将项目 A 包含在另一个项目 B(即 )中,implmentation我会被一条错误消息卡住,告诉我,找不到 JAXB 的运行时依赖项。

我完全糊涂了。我阅读了许多网站,说明了如何正确包含 JAXB、Jakarta、Glassfish 参考实现或其他内容的各种不同的事情,而且这些网站中的许多似乎已经部分过时了,因为 JAXB 最初包含在 JDK 中,现在不再包含它并被重命名不知何故去雅加达。

0 投票
0 回答
194 浏览

spring-boot - 如何使用 JDK 16、gradle 7.1.1 和 javafx 修复 IntelliJ 中的行断点

自从将我们的 JavaFX 应用程序更新到 JDK 16、openjfx 16 和 gradle 7.1.1 后,我们一直遇到无法通过标准 IntelliJ 行断点调试程序的问题。

但是由于某种原因,我们能够命中异常断点。

相关依赖

  • JDK 16.0.1
  • 开放JFX 16
  • Gradle 7.1.1(使用项目 JDK 16.0.1)
  • 春季启动 2.5.2

IntelliJ 运行配置,使用 Spring Boot 的bootRun,标记了以下 gradle 调试复选框:

  • 启用 Gradle 脚本调试
  • 在同一会话中调试分叉任务

尝试过的事情

  1. 将 JDK 降级到 JDK 11
  2. 将 Gradle 降级到 6.9
  3. 将 Spring Boot 降级到 2.2.2.RELEASE
  4. 在 IntelliJ gradle 运行配置中尝试不同的 Gradle 调试选项

我们 build.gradle 的相关部分