问题标签 [java-15]

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

java - Java 文本块:缩进前缀中制表符和空格的混合

Java 15引入了(非预览版)文本块功能。它允许通过从行中去除公共空白前缀来定义多行字符串文字而不破坏代码缩进JEP 378中描述了该算法。

但是,在使用制表符和空格混合缩进的情况下,“通用空白前缀”究竟是如何定义的?

例如,以下情况下的字符串值是什么(·表示空格,表示制表符):

使用 OpenJDK 进行的简单测试显示结果字符串为:

所以看起来 Javac 只计算空白符号,包括空格和制表符,并使用计数——平等地对待空格 (0x20) 和制表符 (0x09)。这是预期的行为吗?


旁注:这不是一个纯粹的理论问题;它对于具有混合空格/制表符缩进和大型代码库的项目具有实际重要性。

0 投票
1 回答
436 浏览

java - Java 15 - getter 具有不同返回类型的记录

是否可以在 java 15 中实现类似的东西?

在这里我得到了例外

(return type of accessor method maybeProp() must match the type of record component maybeProp)

所以 - 我明白问题是什么;但是还有其他解决方案吗?如何在记录中有可选成员,我不需要使用初始化Optional.of()

0 投票
1 回答
198 浏览

spring-boot - 如何在spring boot gradle项目中将时间戳附加到jar?

如何在spring boot Gradle项目中为jar附加时间戳?

创建 jar app-0.0.1-SNAPSHOT.jar,如何创建带有时间戳的 jar

-------- 摇篮

0 投票
0 回答
135 浏览

java - 在 Eclipse 中使用泛型密封接口

以下是合法的(即我可以编译它)并在启用预览功能的 Java 15 中工作(在 eclipse 2020-09 中)

Quantity.java但是,日食在抱怨... permits QuantityImpl。当悬停在QuantityImpl一个可以阅读:

即使它编译,这是一个有效的投诉还是 eclipse 中的错误?

0 投票
0 回答
2201 浏览

spring - 启动层初始化时出错 java.lang.module.FindException: Module jdk.management.agent not found

我正在使用 Eclipse > New > Spring-Starter 项目设置我的第一个 Spring Boot 应用程序项目文件正在出现和编译。我什至可以使用控制台输出 RunAs > Java 项目。在选择 RunAs > Spring Boot时,我在控制台中收到上述错误:

  1. 我的 Java 版本是 Java15,我还在 About Eclispse > Installation Details > Configuration 中验证了 Eclipse 正在使用相同的路径,它显示 -vm C:\Program Files\Java\jdk-15.0.1\bin\server\jvm.dll
  2. 运行在命令行输出中显示的列表中java --list-modules显示management.agent模块:

安装的 Maven 版本是 3.3.6

我不确定我错过了什么。有任何想法吗?

0 投票
2 回答
134 浏览

java - 如何在 Red Hat JBoss Developer Studio 中启用 JDK 15?

我正在使用 Red Hat JBoss Developer Studio 10.4.0.GA(也使用 CodeReady 12.17.0.GA 进行了测试),并且想升级到 JDK 15。

但即使安装了新版本,也无法将其设置为默认 JRE。

我尝试了一些 JDK 15(#1#2)的 eclipse 指令,但没有成功使用 JBoss。

安装 JDK 15 文件夹

添加 JRE

有人有小费吗?

谢谢

解决方案:使用Eclipse 2020-09 (4.17)

0 投票
0 回答
66 浏览

java - 在 Eclipse 中使用本地记录的规范构造函数(预览功能)导致验证错误

我正在尝试在 Eclipse 中使用带有规范构造函数的记录预览功能。

但是,在运行时会导致验证错误。

线程“main”java.lang.VerifyError 中的异常:构造函数必须在返回之前调用 super() 或 this() 异常详细信息:位置:Example$1Range.(II)V @36:返回原因:字节码中存在错误字节码: 0000000:1b1c a400 22bb 000b 5912 0d05 bd00 0f59 0000010:031b b800 1153 5904 1cb8 0011 53b8 0017 0000020:b700 1dbf b1 堆栈图表:same_frame(@36)

在 Example.main(Example.java:10)

这发生在带有 JDK 14 的 eclipse 2020-06 和带有 JDK 15.0.1 和 eclipse 15 支持的 eclipse 2020-19 中。

使用 bin\java 从命令行运行它没有问题,然后不会引发错误。

这对他们日食的其他人有用吗?有什么解决方法吗?

0 投票
0 回答
399 浏览

java - Spring Boot 2.4.0 - 使用 BasicAuthenticationFilter 设置 SecurityContextHolder 会引发 IllegalStateException

目前正在执行从 Spring Boot v2.3.5 到 v2.4.0 的升级。但是,当用户通过身份验证并实际通过FilterChain时,我遇到了设置SecurityContextHolder的问题。

有问题的代码是扩展BasicAuthenticationFilter的类的一部分,如下所示:

如果不设置SecurityContextHolder,代码就可以正常工作,但不幸的是,不会设置身份验证,这不是我想要的结果,因为我想保护某些端点。

扩展WebSecurityConfigurerAdapter的类设置如下:

在通过链时设置 SecurityContextHolder 时发生的异常本身如下:

java.lang.IllegalStateException:没有找到接口 org.springframework.security.core.Authentication 的主要或单个公共构造函数 - 也没有找到默认构造函数

异常堆栈跟踪

0 投票
1 回答
823 浏览

java - Maven 使用编译器选项 --add-exports 编译

所以我终于切换到 Java 15,发现我的旧代码不再编译了。我使用包sun.jvmstat.monitor和类中的类LocalVmManager来检索系统中运行的所有 JVM 的 pid:这适用于 Java8,但不适用于 Java15(我认为它自 Java9 以来就不起作用)。

感谢 IntelliJ,我发现我需要将以下选项传递给javac--add-exports jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local=ALL-UNNAMED --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED

事实上,有了这个选项,我可以通过命令行进行编译。但我也想通过mvn compile. 如何在 pom.xml 中指定编译器选项?

我尝试了以下没有运气:

同时,我将更改我的代码并通过扫描/proc/目录来读取正在运行的 JVM 的 pid。

0 投票
0 回答
257 浏览

java - 如何在 jdk15 之上运行的 felix (v603) 内的 OSGi 组件中创建 InitialDirContext

我正在将我的 jdk8 代码升级到 jdk15 并且大多数依赖项和配置设置都可以正常工作,但是我正在努力创建一个新的 InitialDirContext.

我的组件正在发送邮件并设置 InitialDirContext获取 MX 记录。当作为主运行时,代码运行得很好,即属性 java.naming.factory.initial设置为 的创建com.sun.jndi.dns.DnsContextFactory工作得很好。

但是,当我在 Felix 中运行这种类型的代码时,我遇到了异常:

我可以看到jdk.naming.dns模块实际上并没有导出包com.sun.jndi.dns,但是代码怎么可能在主类中工作?我是否需要将其他设置添加到我的 Felix config.properties 文件中?