我使用Java 14作为Netbeans 11.3的默认Java平台(netbeans_jdkhome被设置为我的Java 14 JDK),并尝试在一个简单的Java应用程序中使用预览功能。我将源代码级别设置为14,并将--enable-preview设置为编译器参数。代码编译时没有错误。
然而,当我尝试在Netbeans中运行它时,它抱怨.class文件的主版本是57,而运行时只能运行58个文件和预览功能。
不支持的类版本错误:javapplicationtest 14/JavaApplicationTest 14(类文件版本57.65535)是使用不受支持的预览功能编译的。此版本的Java Runtime仅识别类文件版本58.65535的预览功能
我检查了.class文件的主要版本,它们确实是57。你知道为什么我的项目不能编译到Java 14级吗?我正在使用Ant构建。
4条答案
按热度按时间pbpqsu0x1#
除了将**--enable-preview**设置为编译器选项之外,还应在运行代码时将其设置为 VM Option:
但是,这并不能解决问题,不幸的是,这看起来像是NetBeans 11.3的bug。我用 Java with Ant 项目重现了您的问题,并创建了Bug Report NETBEANS-4049 UnsupportedClassVersionError when running JDK14 code with --enable-preview。
如果您需要在NetBeans中使用JDK 14的预览功能,有几种解决方法:
如果您仍有问题,请使用更多详细信息更新问题。
vfwfrxfs2#
Netbeans项目配置(Java 14)
可选:
可以使用sdkman或设置默认java路径:
第一个
项目“运行”配置
Java平台
pom.xml文件
* 备注 *
e5njpo683#
不应安装nb-javac(它出现在插件中)。
如果它安装在11.3中,它似乎创建了版本为57而不是58的类文件,运行时会反对,如上所述。
kgsdhlau4#
我在Netbeans 15中尝试了此功能。我希望使用外部链接器API,代码完成功能会显示:
MemoryAddress是一个预览API,默认情况下处于禁用状态。(使用--enable-preview可启用预览API)
我把
--enable-preview
选项放在pom.xml
中,它不会改变任何东西。如果我转到项目属性/构建/编译,有一些选项可以选择JDK,但没有办法输入JDK选项。NetBeans提示似乎建议使用--enable-preview
,但实际上没有办法这样做。这是NB中的一个bug还是我遗漏了什么?非常令人沮丧,因为我想使用其中的一些功能,我花了我的时间试图让我的代码编辑器工作。我认为这在NB的早期版本中是有效的。