错误:java:javacTask:源版本 8 需要目标版本 1.8
Posted
技术标签:
【中文标题】错误:java:javacTask:源版本 8 需要目标版本 1.8【英文标题】:Error:java: javacTask: source release 8 requires target release 1.8 【发布时间】:2015-07-05 11:37:07 【问题描述】:使用 IntelliJ IDE 无法编译任何项目。设置截图如下:
使用的JDK:
项目 SDK 和语言级别:
语言水平:
有人有什么想法吗?
【问题讨论】:
这看起来不像来自“纯 Intellij”的错误;你不是在使用 ant buildscript 之类的吗? IDEA: javac: source release 1.7 requires target release 1.7 的可能副本 ***.com/a/42993827/2685581 【参考方案1】:-
转到 File > Settings > Build, Execution, Deployment > Compiler > Java Compiler 如果在 Mac 上,它位于 Intellij IDEA > Preferences... > Build, Execution, Deployment > Java 编译器
将您正在使用的模块的目标字节码版本更改为1.8。
如果您使用的是 Maven
将编译器插件添加到***project
节点下的pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
(从 cmets 中吊起。)
注意:如果您不介意重新导入项目,那么您真正需要做的就是更改 pom 并重新导入项目,然后 IntelliJ 将选择正确的设置,您无需手动更改他们。
【讨论】:
在 IntelliJ 14 Ultimate 中工作。 在较旧的 IDEA 版本上,尝试:设置 -> 编译器 -> Java 编译器 -> 每模块字节码版本 如果你在 Mac 上,它在 Intellij IDEA > Preferences... > Build, Execution, Deployment > Java Compiler 下 对于 2016.2 之后的 Intellij,还有一个地方需要检查:Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK
。
当您的 POM 层次结构具有两个以上级别并且您的编译器插件在父 POM 中定义时,IntelliJ 可能无法在最深的级别识别它。我说可能不会,因为对于其他一些模块它确实如此,即使它们扩展了相同的父 POM。【参考方案2】:
您需要进入设置并在 Java 编译器下设置以下内容:
同时检查项目设置
【讨论】:
【参考方案3】:这看起来像是当您没有正确配置编译器插件时 Maven 生成的那种错误。这是 Java 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">
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
</project>
【讨论】:
对于像我这样的其他 Maven 新手,这应该在project
,build
,然后是plugins
。
另外如果配置了<source>1.8</source>
和<target>1.8</target>
,也会出现上述错误。
这对我有用,谢谢!版本标签没有解析(我更改它以匹配我的 Maven 版本)所以我将其注释掉。我相信 Maven 应该在这种情况下自动获取正确的最新版本,基于此线程:***.com/questions/17239394/…。【参考方案4】:
我找到的最快方法:
按:CTRL + SHIFT + A(对于 Mac ⌘ + SHIFT + A) 类型:java compiler
按:ENTER
在设置窗口中,将目标字节码设置为 1.8
(对于 java9 或 9)
【讨论】:
这绝对对我有用(谢谢!)但我不明白为什么这与 pom.xml、模块设置等中的不同...... 按⌘,获取偏好。【参考方案5】:有两种方法可以解决这个问题:
-
设置设置
(File -> Settings -> Build, Execution, Deployment -> Java Compiler)
:
将构建部分添加到您的pom.xml
:
【讨论】:
【参考方案6】:许多关于 Maven 的答案都是正确的,但您不必直接配置插件。
如 Apache Maven 编译器插件的 wiki page 中所述,您只需设置插件使用的 2 个属性。
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
【讨论】:
@ Marvin Richter 我尝试了您的解决方案,但它不适用于 IntelliJ - 我的猜测是它在纯 maven 构建(命令行)中是正确的,但 IntelliJ 只是忽略了这些属性。我必须按照其他解决方案中的说明配置插件。 不,我没有,因为其他解决方案有效。现在我将我的项目迁移到了 gradle。 在你完成后就像一个魅力右键单击 pom.xml -> Maven -> 重新导入。这应该是 Maven 用户接受的答案。 您实际上需要在 pom 或 gradle 文件中使用插件org.apache.maven.plugins:maven-compiler-plugin
,文档中的意思是在 pom 属性中设置该属性就足够了,主要是因为它们设置了默认值插件的值,例如
这应该是公认的答案。在 Mac os 10.13.5 上的 IntelliJ 2018.2 上为我工作【参考方案7】:
我通过转到 Project Structure -> Modules 解决了这个问题,找到有问题的模块,点击 Dependencies 选项卡,更改 @987654321 @到Project SDK
。
【讨论】:
【参考方案8】:我只是通过将目标编译版本更改为 1.8 来修复它。它在:
文件 >> 设置 >> 构建、执行、部署 >> 编译器 >> Java 编译器
【讨论】:
谢谢,维沙尔。我们必须指定项目字节码版本,或者至少使用 Intellij Idea 指定每个模块的字节码版本。只是在 pom.xml 中为 maven-compiler-plugin 设置它并没有解决我的问题。【参考方案9】:您需要转到/.idea/compiler.xml
并将target
更改为所需的jdk
级别。
【讨论】:
【参考方案10】:在我的情况下,我通过打开项目的 .iml 文件 解决了这个问题(它位于项目根文件夹中,名称与项目名称相同)并将行 <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
更改为 @ 987654322@
我在这里按照其他答案进行了所有配置,但由于某种原因,Idea 错误地更新了 .iml 文件。
【讨论】:
即使您配置了所有菜单,有时 Intellij 似乎也不会更新配置文件。 使缓存无效并重新启动(在编辑配置文件后),对我有用。奇怪。 非常感谢。最后,在尝试并失败了上面指定的所有其他解决方案之后,这行得通。【参考方案11】:我通过修改我的 POM 文件来修复它。请注意最高投票答案下的最后一条评论。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
源必须与目标匹配。
【讨论】:
【参考方案12】:我只是重新导入maven按钮,然后错误消失了。
【讨论】:
谢谢。这个提示成功了【参考方案13】:在你的 Gradle 应用级别文件 >> compileOptions 添加这两行
android
compileOptions
...
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
...
【讨论】:
【参考方案14】:如果您使用的是 Android-studio 1.3,请按照以下步骤操作 -
转到文件 - 项目结构
在modules-app-Properties标签下,选择 源兼容性 -1.8 和
目标兼容性 - 1.8。
你可以走了。
【讨论】:
【参考方案15】:在 compiler.xml 文件下你会发现:
<bytecodeTargetLevel>
<module name="your_project_name_main" target="1.8" />
<module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>
您可以将目标值从旧的更改为新的,我需要将其从 1.5 更改为 1.8
【讨论】:
【参考方案16】:我刚刚花了一段时间来解决同样的问题。 唯一对我有用的不是使用内置的 mvn(3.3.9),而是将其指向外部下载版本(3.5.0)。最后项目打开了,一切都很好。
【讨论】:
【参考方案17】:不要忘记为您的模块设置依赖项:
【讨论】:
【参考方案18】:如果您的模块配置了注释处理器而其他模块没有配置,则会出现此问题。为所有模块设置相同的配置,因为它会是循环依赖。
【讨论】:
【参考方案19】:对我来说,问题在于 Maven 无法找到正确的配置,因为这些项目是在父 pom 中指定的。
更改文件 -> 设置 -> 构建、执行、部署 -> Maven -> 用户设置文件以使用适当的存储库指向我的自定义设置,从而解决了原本隐藏的问题。
通过帮助->在资源管理器中显示日志->单击日志文件发现了问题,而以前只在标题中出现错误,在控制台中出现“java.lang.NullPointerException”。
【讨论】:
【参考方案20】:问题的解决方法很简单。你必须在你的 İdea 项目中打开 .idea/compiler.xml 文件,然后
您应该编写适当的目标版本
【讨论】:
【参考方案21】:使用 Intellij,使用 Maven,您必须检查 Intellij 是否已自动导入您的项目。 您可以通过单击编辑器右侧的 Maven 选项卡进行检查。
如果您的项目不在此处,请单击+
添加pom.xml
文件。
显然,该项目还必须有相关的<build/>
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
【讨论】:
【参考方案22】:如果其他答案都不起作用,请检查您的模块 SDK。
在我将项目 SDK 更新到 1.8、Javac 编译器更新到 1.8 等之后,我弹出了这个错误。对我来说有问题的设置是“模块 SDK”。
(在 Linux 上)转到File > Project Structure...
,然后在打开的窗口中,选择Project Settings
下的Modules
。从列表中选择有问题的模块,然后选择Dependencies
选项卡,并确保Module SDK
设置正确。
【讨论】:
【参考方案23】:我已经检查了以上所有,但错误仍然存在。
但在我的情况下,重新导入所有 maven 项目(Maven 项目面板中的重新加载按钮)有效。
【讨论】:
以上是关于错误:java:javacTask:源版本 8 需要目标版本 1.8的主要内容,如果未能解决你的问题,请参考以下文章
Information:java: javacTask: 源发行版 8 需要目标发行版 1.8
[java问题记录]IntelliJ Idea编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8
IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
IntelJ Idea Error:java: javacTask: source release 8 requires target release 1.8