【发布时间】:2020-07-02 13:31:42
【问题描述】:
我使用 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 运行时仅识别类文件版本 58.65535 的预览功能
我检查了 .class 文件的主要版本,它们确实是 57。任何想法为什么我的项目不会编译到 Java 14 级别?我正在使用 Ant 构建。
【问题讨论】:
-
虽然我可以复制您的问题,但当我从命令行使用
javap检查类文件的版本时,我得到minor version: 65535 major version: 58,这是我所期望的。您如何确定您的类文件确实是 57 版? -
我也用过javap。不知何故,问题消失了——我想我重新启动了我的机器或其他“修复”它的东西;我不知道我的 Netbeans 安装是否使用了我之前安装的某些设置,或者什么... 真的很奇怪,因为我的系统上没有安装 Java 13。我想我永远不会真正知道发生了什么。但感谢您的意见!