[英]Usage of instanceof <pattern> in NetBeans 11.3 + OpenJDK 14
[英]Netbeans 11.3 and Java 14 Preview Features
我使用 Java 14 作为 Netbeans 11.3 的默认 Java 平台 .netbeans_jdkhome 设置为我的 Java 14 JDK)并尝试在简单的 Java 应用程序中使用预览功能。 我将源级别设置为 14,并将 --enable-preview 设置为编译器参数。 代码编译没有错误。
但是,当我尝试在 Netbeans 内运行它时,它会抱怨 .class 文件的主要版本是 57,而运行时只能很好地处理 58 个文件和预览功能。 这是错误:
java.lang.UnsupportedClassVersionError:javaapplicationtest14/JavaApplicationTest14(类文件版本 57.65535)使用不受支持的预览功能编译。 此版本的 Java 运行时仅识别 class 文件版本 58.65535 的预览功能
我检查了 .class 文件的主要版本,它们确实是 57。为什么我的项目不能编译成 Java 14 级的任何想法? 我正在使用 Ant 版本。
除了将--enable-preview设置为编译器选项外,还应在运行代码时将其设置为VM 选项:
但是,这并不能解决问题,不幸的是,这看起来像是 NetBeans 11.3 的错误。 我使用带有 Ant项目的Java重现了您的问题,并在使用 --enable-preview 运行 JDK14 代码时创建了错误报告NETBEANS-4049 UnsupportedClassVersionError 。
如果您需要在 NetBeans 中使用 JDK 14 的预览功能,有几种解决方法:
如果您仍有问题,请使用更多详细信息更新您的问题。
可选:
可以使用sdkman或设置默认 java 路径:
/opt/<jdk-install-dir>
C:\Program Files\<jdk-install-dir>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>Demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>14</maven.compiler.source>
<maven.compiler.target>14</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
不应安装 nb-javac(它出现在插件中)。
如果它安装在 11.3 中,它似乎会创建版本为 57 而不是 58 的类文件,然后运行时会反对,如上所述。
我正在用 Netbeans 15 尝试这个。我想使用外国 linker API,代码完成是说:
MemoryAddress 是一个预览 API,默认情况下是禁用的。 (使用 --enable-preview 启用预览 API)
这适用于 JDK 19 和 JDK 20 预览版。 我将--enable-preview
选项放在pom.xml
中,它没有任何改变。 如果我go到project properties/Build/Compile,有选项可以选择哪个JDK但是没有办法进入JDK选项。 似乎 NetBeans 提示推荐--enable-preview
但实际上没有办法做到这一点。 这是 NB 中的错误还是我遗漏了什么? 非常令人沮丧,因为我想使用其中的一些功能,而且我正在花时间尝试让我的代码编辑器工作。 我认为这在以前的 NB 版本中确实有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.