javac:无效的目标版本:1.8。

91

我最近下载了捆绑NetBeans的JDK 1.8.0.0_06版本。接着发现我之前用Java 1.7开发的JavaFX项目无法在Java 1.8上编译,于是我将JDK降级到1.7,但仍然无法得到工作/编译。我收到了如下错误:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

我真的卡住了,非常感激任何帮助。


1
如果你要退出,那么也将你的项目源更改为1.7版本。右键点击你的“项目 -> 属性 -> 源窗口”,在这里设置为1.7。 - jmj
你是救命恩人@Jigar Joshi!!!再次感谢*****。我非常感激。您可以将您的回复作为答案,这样我就可以接受它了。哇!再次感谢。我已经卡了很久了! - Program-Me-Rev
如果你的项目在Java 1.8下无法编译,那么你很可能做错了一些非常严重的事情(例如,在你发布的其他问题中的代码中有UI组件的静态字段,这是一个严重的设计错误)。最好解决这个问题,而不是仅仅回退到许多用户将来会升级的版本。 - James_D
你说得对,@James_D。这是我在Java中的第一个项目。我基本上是自学编程的,直到现在才完全理解了避免使用静态成员、接口以及多态性等方面的知识。我的项目太大了,无法一次性编辑。我计划在完成其他剩余部分后,逐步通过Spring进行依赖注入来进行编辑。这是一个痛苦的教训,但我已经学到了。 - Program-Me-Rev
1
有Java版本1.8.0、1.8.0_05和1.8.0_11,但是并不存在1.8.0.0_06这个版本。 - David Conrad
16个回答

68

对于IntelliJ14,您可能需要根据使用的JDK更改字节码版本(在全局设置中):

输入图像描述


对我不起作用,将目标字节码版本更改为1.8,但仍然出现相同的错误。 - tribbloid
但问题是关于Netbeans的吗? - Jolta

34

如果您要下台,请将项目的源更改为1.7。

right click on your Project -> Properties -> Sources window 

并将此处设置为 1.7

注:不过我建议您找出它在 1.8 上为什么不起作用


27
  1. 下载JDK 8
  2. 编辑环境变量JAVA_HOME,将其指向新安装的JDK 1.8: 右键单击“我的电脑”→属性→高级系统设置→环境变量 在列表中找到JAVA_HOME并将其值设置为以下内容之一:

  3. C:\Program Files\Java\jdk1.8.0_31
    
  4. PATH 变量中寻找旧版本并进行编辑。

  5. 可能需要重新启动系统。

应该完成了。


23
如果在运行Gradle(或Maven)任务时出现此错误,则需要修改构建工具配置以指向您的Java JDK 1.8安装位置,步骤如下:

文件 -> 设置 -> 构建,执行,部署 -> 构建工具 -> Gradle

在那里,您需要检查链接的Gradle项目是否是您正在使用的项目,并选择Gradle JVM(当您将gradle项目导入IntelliJ时,可能会忽略此项)。

输入图像描述

记住,在导入Gradle(或Maven)项目时,要正确设置目标JVM: 输入图像描述

14

您的javac没有指向正确的java。

使用以下命令检查您的javac指向何处 -

update-alternatives --config javac
如果它没有指向您想要进行编译的javac,请将其指向"/JAVA8_HOME/bin/javac",或者您想要进行编译的任何Java版本。

为什么会出现-1呢?我也遇到了同样的问题,原因是我的javac没有设置正确的Java版本。 - Piyush Jajoo
请注意,配置可能会出现问题,因为Java和Javac是从不同的发行版中选择的! - Audrius Meškauskas

9

大多数情况下,这些问题是由于Java版本不正确引起的。确保您的PATH和JAVA_HOME变量指向正确的版本。


是的 - 那也是我的原因。 - guy mograbi

5

Maven设置:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

3

之前的解决方案都对我没用。

我通过编辑.idea/compiler.xml文件来解决它。有一些“额外”的(1)和(2)副本,具有不同的目标的坏模块。我删除了多余的条目,并将

中的目标更改为1.8,这样就可以解决问题了。


这对我也解决了问题。 - davidmerrick

2

如果以上建议无效,针对截至2017年12月18日最新版本的IntelliJ IDEA Ultimate,请尝试以下步骤:右键单击项目并导航到“打开模块设置”。打开它,然后从下拉菜单中更改“语言级别”。


还要确保在模块设置中的依赖项选项卡下选择了正确的模块 SDK。 - Rene Juuse

1
另外,我查看了pom.xml并修改了


<java.version>1.8</java.version>

to

<java.version>1.7</java.version>

谢谢,这对我很有帮助,非常简单。 - Fabii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接