javac:无效的目标版本:13
javac: invalid target release: 13
我一直在使用 NetBeans 11 的工作计算机上处理一些 class 项目,并将我的进度上传到 github。最近,我回到家,把我的进度拉到我的笔记本电脑上,它仍然有 netbeans 8。突然间,当我尝试 运行 代码时,我得到:
javac: invalid target release: 13
通过浏览 Whosebug 和其他此类论坛,我了解到 13 指的是 JDK 的版本。显然,我的设置有些不匹配(要么我使用的是旧版本,但 NetBeans 想使用更新的版本,要么相反)。
我进入 project > properties > sources
并看到一个标题为 "Source/Binary Format" 的下拉栏,其中选择了 JDK 13。我把它降到 9(一个完全随机的选择),然后再次尝试 运行 我的代码。瞧,成功了。
我的问题很简单:我刚刚做了什么?为什么它起作用了?对我的计划有任何影响吗?
如果您选择回答,请注意我对 Java 的内部工作原理知之甚少,因此希望您能提供一个简单的解释。我只知道怎么写代码,不知道幕后发生了什么。我很想盲目地继续编码,但我认为这可能是一个学习点。也许不是。
基本上,您的 IDE 根据语言规则检查您的代码,那些根据语言版本而不同的代码,例如Java 7 没有 lambda,但 Java 8 有。您的项目已配置为根据 Java 13 的规则进行检查,但旧版本的 NetBeans 无法执行此操作,因此您已要求根据 [=14= 的规则对其进行检查] 9代替。除非您想使用 Java 10 或更高版本中引入的功能,否则这不会对您的项目产生影响。
此下拉菜单的另一个用途是,如果您想要编译您的项目,以便它可以 运行 使用旧版本的 Java。如果您要为仍然只安装了 Java 8 的用户分发软件,那么您可能希望将项目限制为 Java 8.
我一直在使用 NetBeans 11 的工作计算机上处理一些 class 项目,并将我的进度上传到 github。最近,我回到家,把我的进度拉到我的笔记本电脑上,它仍然有 netbeans 8。突然间,当我尝试 运行 代码时,我得到:
javac: invalid target release: 13
通过浏览 Whosebug 和其他此类论坛,我了解到 13 指的是 JDK 的版本。显然,我的设置有些不匹配(要么我使用的是旧版本,但 NetBeans 想使用更新的版本,要么相反)。
我进入 project > properties > sources
并看到一个标题为 "Source/Binary Format" 的下拉栏,其中选择了 JDK 13。我把它降到 9(一个完全随机的选择),然后再次尝试 运行 我的代码。瞧,成功了。
我的问题很简单:我刚刚做了什么?为什么它起作用了?对我的计划有任何影响吗?
如果您选择回答,请注意我对 Java 的内部工作原理知之甚少,因此希望您能提供一个简单的解释。我只知道怎么写代码,不知道幕后发生了什么。我很想盲目地继续编码,但我认为这可能是一个学习点。也许不是。
基本上,您的 IDE 根据语言规则检查您的代码,那些根据语言版本而不同的代码,例如Java 7 没有 lambda,但 Java 8 有。您的项目已配置为根据 Java 13 的规则进行检查,但旧版本的 NetBeans 无法执行此操作,因此您已要求根据 [=14= 的规则对其进行检查] 9代替。除非您想使用 Java 10 或更高版本中引入的功能,否则这不会对您的项目产生影响。
此下拉菜单的另一个用途是,如果您想要编译您的项目,以便它可以 运行 使用旧版本的 Java。如果您要为仍然只安装了 Java 8 的用户分发软件,那么您可能希望将项目限制为 Java 8.