问题标签 [java-14]

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 回答
799 浏览

java - 如何使用 spring-data-jdbc 插入不可变记录

实体是

请注意,该 ID 是客户端分配的 UUID,因此我对数据库自动分配的任何类型的 ID 不感兴趣。

存储库:

当我调用时,repository.insert(picture)我最终得到以下错误:

问题是:有没有办法可以将不可变实体与 spring-data-jdbc 一起使用?

咆哮:不变性很好,UUID 很好,自动增量很糟糕。我认为这是一个假设,即我必然需要自动增量,并且我希望能够关闭它以防万一我不想要它。

编辑:我正在使用 spring-boot-starter-jdbc:2.2.6.RELEASE 它附带 spring-data-jdbc:1.1.6.RELEASE

0 投票
1 回答
473 浏览

java - 当功能需要 ASM8_EXPERIMENTAL 时跳过 Spot Bugs 堆栈跟踪

我正在使用spotbugs-maven-plugin 4.0.0(+ spotbugs 4.0.2 依赖项)。

问题是它无法识别 Java 14记录

每次当它找到一条记录或使用该记录的类时,它都会打印一个长堆栈跟踪。

我怎样才能摆脱这些详细的异常?

0 投票
1 回答
1790 浏览

spring-boot - 运行 spring boot 应用程序抛出 java.lang.NoClassDefFoundError: org/xmlbeam/config/XMLFactoriesConfig with Java 14 only

我有一个小的 spring-boot 应用程序。此应用程序之前已成功运行。今天,在阅读了 spring-boot 2.2.6 支持 Java 14 之后,我决定将我的 Java 版本从 11 更新到 14(通过 spring 初始化程序允许您现在选择 Java 14 的事实来验证)。我的应用程序使用2.2.6.RELEASE

然后我更新了我的 pom.xml java 版本如下:

但是现在当我运行我的应用程序时./mvnw spring-boot:run,应用程序无法运行并引发以下错误(似乎是由于 spring 无法找到造成的org.xmlbeam.config.XMLFactoriesConfig):

在这里运行的完整输出./mvnw spring-boot:run

因此,我随后下载并安装了 Java 13,并将我的操作系统中的默认值javajavac版本设置为 13,应用程序编译并运行良好,但如果我尝试使用 14,则会出现此错误。

0 投票
3 回答
437 浏览

java - jdk-14.0.1 VM java.lang.NullPointerException 初始化期间发生错误

我在我的计算机中安装了 jdk-14.0.1 并为此设置了环境变量,当我发出命令javajava -version它给出以下异常时。

我的系统配置就像-

  1. 内存:8.00 GB(7.89 GB 可用)
  2. 操作系统:Windows 10。
  3. 处理器:英特尔(R) Core i5-8265U。
  4. 系统类型:64 位操作系统,基于 x64 的处理器。
0 投票
1 回答
95 浏览

java - 带有 jlink 的 Java 中不提供 ECDSA 算法

我正在编写一个Java 14应用程序,它应该使用和等算法验证一些签名SHA256withECDSA,但我遇到了一个特殊的副作用:SHA384withECDSASHA512withECDSAjlink

  • 当使用标准 JDK/JRE 14 运行时运行应用程序时,算法会出现(SunEC 已成功加载)
  • 当使用 JRE 运行时的优化版本运行应用程序时,使用jlink并包含jdk.crypto.ec模块,根本不加载 SunEC 并且算法不可用

我知道 OpenJDK 错误跟踪器中的这张票,但我不明白为什么优化的 jlink 版本中有不同的行为。

在 jlink 生成的运行时文件夹中,还有libsunec.so.

我正在使用此SO 代码段打印出可用的算法,并获得以下输出:

出于相同和相关的原因,使用策略文件验证签名的 Jar 不起作用。

谁能解释/指出我应该寻找什么?

编辑:jlink 运行时使用以下参数构建:

0 投票
1 回答
648 浏览

java - 如何在 gradle 测试中启用有用的 NullPointerExceptions

Gradle 6.6 中已修复此问题

原帖

我想在测试中添加标志-XX:+ShowCodeDetailsInExceptionMessages以启用有用的 NPE ( https://openjdk.java.net/jeps/358 )

我试过了

但是 NPE 仍然没有消息。

这是我的java版本

编辑更多研究

为了更准确地找出问题的根源,我做了更多的工作。我的结论是它不是来自我的 java 也不是来自测试框架,它只能是 gradle 的错误配置或错误。这是我所做的:

我已经用这个 build.gradle.kts 设置了一个空的 gradle 项目

并带有一个测试类(src/test/java/TestNPE.java)

所以现在

这意味着该框架不会对 NPE 做任何特别的事情。

之后,我通过使用调试日志运行测试来检索 gradle 使用的类路径。有了它,我可以直接运行 JUnit。使用 -XX:+ShowCodeDetailsInExceptionMessages 会显示有用的 NPE 消息:

0 投票
2 回答
1352 浏览

java - 带有 Maven 和 IntelliJ 的 OpenJFX 14:无法运行应用程序

我正在尝试在 IntelliJ 上的 JDK 14 Java 项目上使用 OpenJFX。我的项目有多个 IntelliJ 模块,每个模块都有一个 pom.xml。

在包含我的主要模块的 IntelliJ 模块中,我添加了 JFX 作为依赖项:

在我的顶级 pom.xml 中,我添加了 JFX 插件:

但是当我尝试运行我的应用程序时:

我得到以下错误:

我试图运行:

在这样做之前,但结果是完全一样的。你知道为什么它不起作用吗?

0 投票
0 回答
395 浏览

java - 在异常消息设置中显示代码详细信息

我刚刚在我的 java 应用程序中使用了 -XX:+ShowCodeDetailsInExceptionMessages 并检查了输出详细信息的更改,我想看看这是否可由用户或开发人员配置以显示某些具有更多详细信息的异常,或者它正在影响所有异常?

如果它是可配置的,我是否能够根据正在工作或测试项目的团队和人员设置自定义模型?

0 投票
3 回答
3491 浏览

java - 您是否需要为记录覆盖 hashCode() 和 equals()?

假设以下示例:

我是否需要覆盖hashCodeequals如果我要将所述对象添加到 a 中HashMap

0 投票
1 回答
684 浏览

java - 安装了 Java 14 但 Java 版本仍显示旧 Java

我在系统中的以下位置安装了 java 14。C:\Program Files\Java\jdk-14.0.1但在运行java -version时它仍然指向java version "1.8.0_251". 如何将其更改为指向 Java 14。

我已将我的设置JAVA_HOMEC:\Program Files\Java\jdk-14.0.1\bin并附加了相同Path的系统变量,但它仍然显示旧版本。

为什么会这样,一点帮助将不胜感激。谢谢