问题标签 [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 - 运行 '/usr/libexec/java_home -V' 显示不存在的路径
当我/usr/libexec/java_home -V
在 MacOS 上运行时,我得到以下输出:
但是,当我导航到 JavaVirtualMachines 目录并运行ls -a
时,没有 /openjdk-16.0.2 目录。为什么是这样?我正在尝试卸载 OpenJDK 16 并从我的计算机中删除它的所有痕迹。
java - C-style arrays do not work with records anymore
I was previously using this contrived code
which is making use of the C-style array-notation. And it compiled fine in Java 15.
Now, all of the sudden, with the official release of records in Java 16, it does not compile anymore. Here is the output from jshell:
Why did it compile in Java 15, was this a bug? Out of curiousity, why is it not supported in records, while being supported anywhere else in Java?
I am using javac
from Adoptium (based on OpenJDK).
java - LambdaMetaFactory 和私有方法
我想使用 LambdaMetaFactory 来有效地访问私有方法。
我知道这不是安全违规,因为以下代码有效:
但是,我尝试使用 LambdaMetaFactory 失败了:
显然m.setAccessible(true)
这里还不够。我尝试更改lookup
为MethodHandles.privateLookupIn(Foo.class, MethodHandles.lookup())
,这在我的玩具示例中确实解决了它......但在我的实际应用程序中没有,它会生成一个IllegalAccessException
说法,我的班级“没有完全特权访问”。我一直无法发现为什么我的应用程序“没有完全权限访问”,或者如何修复它。
我发现几乎可以工作的唯一一件事是:
只要我在VM选项中有我可以做到TRUSTED
的,它就允许我使用它。这会产生一个代替(说它找不到),这似乎很有希望......但我仍然无法弄清楚如何让它完全工作,只是产生这个错误而不是其他错误。lookup
--illegal-access=permit
NoClassDefFoundError
Foo
这里发生了什么,我该如何bar
访问LambdaMetaFactory
?
java - 我已经在 ubuntu 20.04 中安装了 Jdk 16。我已经设置了路径但是当我在 eclipse 中运行程序时,我看到启动错误
错误描述:
构建过程中发生错误。在项目“TestProject”上运行构建器“Java Builder”时出错。对于输入字符串:基数 16 下的“G”
cryptography - 不支持 JDK 16 曲线:secp256r1 [NIST P-256,X9.62 prime256v1] (1.2.840.10045.3.1.7)
目前正在从 Java 13 升级到 Java 16,并为执行加密/解密的加密库使用以下更新的依赖项:
- 充气城堡 1.69
- 谷歌 Tink 1.6.1
==================================
加密库类:
CryptoUtility 类:
JUnit类:
堆栈跟踪:
ECDHKeyAgreement.engineGenerateSecret()实现似乎在 Java 16 中发生了更改,现在它正在抛出: throw new IllegalStateException(new InvalidAlgorithmParameterException(" 与 Java 13 中的实现相比,不支持曲线。
有什么建议可以在 JDK 16 中使用 BouncyCastle 作为提供者来实现加密,或者是否应该由任何其他提供者替换它?
java - Collectors.toList 和 Stream.toList 之间的模板参数区别
发现 collect(Collectors.toList()) 和 Stream.toList() 之间的区别。看
collect(Collectors.toList()) 能够给我一个动物列表或猫列表。但是 Stream.toList() 只能给出 Cat 的列表。
问题是有什么方法可以让 Stream.toList() 工作。在我的真实示例中,我有一个覆盖shutdownNow 的类,它返回一个Runnable 列表,所以我的类调用something.stream().collect(Collectors.toList()),但是something.stream().toList()返回 MyRunnable 的列表。
我的一部分希望他们将函数声明为default <U super T> List<U> toList()
而不是default List<T> toList()
,尽管奇怪的是这是我机器上的编译错误(我的编译器似乎可以使用 U extends T,而不是 U super T)。
java - Netbeans 报错:指定的安装文件夹是只读的
屏幕截图 我正在尝试安装 NetBeans ide,但它显示指定的安装文件夹是只读的。由于我的 c 盘空间不足,我在 d 盘中安装了大部分程序,包括 java JDK。
java - 如何使反射在 JDK 16 及更高版本上工作?
我有以下迁移到 Java 16 的遗留代码,但是由于这个新版本引入的强封装,它不起作用:
有没有办法让它工作?
intellij-idea - 使用 Java Flight Recorder 错误在 IntelliJ 中进行分析
我有一些缓慢的测试,我想弄清楚为什么它们很慢。所以我尝试使用 IntelliJ 中的 Java Flight Recorder 对它们进行分析。测试运行绿色,但分析器没有输出。
设置:
- IntelliJ IDEA 2021.2.2(终极版)
- 采用OpenJDK-16.0.1+9
- 六月 5.7.2
- macOS 大苏尔
- 我在我的主目录中创建了一个新的空文件夹,并在“Profiler”>“设置”>“更改快照文件夹...”下进行了配置
错误:
探查器错误:无法解析转储文件:/Users/me/myDirectory/TestName_date_time.jfr(没有这样的文件或目录)
事实上,这个文件(也不是这个目录中的任何其他文件)是创建的。
使用以下命令开始测试:
如何修复我的设置以便能够运行探查器?
注意:尝试使用 Async Profiler 运行它会产生类似的错误。