问题标签 [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.
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 作为父级可以解决问题?
java - 无论我们做什么,流都比 For Loop 慢
我有一个非常简单的程序
在Java 8中执行时,以下是 o/p
爪哇吨/吨
在java 16中执行相同
java t/T.java
在java 11中执行时
java t/T.java
这表明无论我们使用哪个版本的 JDK,流都比基本的 for 循环慢。我的理解正确吗?我的印象是 JDK 8 可能会更慢,但在更高版本的 JDK 中不会。
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.0
和de.flapdoodle.embed:de.flapdoodle.embed.process:3.0.1
。
当我运行如下声明的集成测试时,
控制台出现如下异常,但测试成功。有什么办法可以消除噪音?
java - Selenium 是否适用于 Java 16?罐子都在那里,但导入不起作用
从相对初级的 Java 背景学习 Selenium。根据所有指南下载 JAR 并将它们导入 Eclipse,但它们与代码的功能没有任何关系。在网上到处搜索,但除非我发疯,否则找不到任何东西。附加的屏幕截图显示了引用的库以及代码:代码和罐子
代码本身是:
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 参数运行该类
但是,它仍然没有运行
有人可以帮忙吗?
java - 正则表达式 \p{Cs} 与 Java 16 中的符号不匹配
有谁知道为什么正则表达式与Java 16\p{Cs}
中的符号不匹配?它曾经在 Java 11 中与之匹配。
爪哇 11
爪哇 16
java - 由于测试阶段权限被拒绝异常,Maven 构建失败
我正在使用 Maven 3.8.1 和 Jdk16 来构建一个非常简单的 Spring Boot 应用程序。
但是,它在测试阶段失败了。堆栈跟踪表明在运行 Maven Surefire 插件期间权限被拒绝,如下所示。任何帮助/想法都非常感谢。
太感谢了!
但是,它在测试阶段失败了。堆栈跟踪表明在运行 Maven Surefire 插件期间权限被拒绝,如下所示。任何帮助/想法都非常感谢。
太感谢了!
java - Spring 4.x 兼容 Java 16
我目前正在将我的应用程序从 Java 8 迁移到 Java 16,目前,我正在运行 Spring 4.x。这个 Spring 4.x 是否与 Java 16 兼容,或者我需要将 Spring jar 升级到最新版本?
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 中,现在不再包含它并被重命名不知何故去雅加达。
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 脚本调试
- 在同一会话中调试分叉任务
尝试过的事情
- 将 JDK 降级到 JDK 11
- 将 Gradle 降级到 6.9
- 将 Spring Boot 降级到 2.2.2.RELEASE
- 在 IntelliJ gradle 运行配置中尝试不同的 Gradle 调试选项