【发布时间】:2015-04-28 09:17:08
【问题描述】:
我正在使用 Intellij。这很好,但是当我创建一个新项目或导入一个项目时,默认项目语言级别设置为 6(接口中的@override)。但我想将其设置为 8(Lambda、类型注释等)。我怎样才能做到这一点?我尝试更改“其他设置”->“默认项目结构”中的设置并将项目语言级别设置为 8,但没有运气。请有人帮助我。我添加了一个屏幕截图。
- 我正在使用 Intellij 14.0.2
【问题讨论】:
我正在使用 Intellij。这很好,但是当我创建一个新项目或导入一个项目时,默认项目语言级别设置为 6(接口中的@override)。但我想将其设置为 8(Lambda、类型注释等)。我怎样才能做到这一点?我尝试更改“其他设置”->“默认项目结构”中的设置并将项目语言级别设置为 8,但没有运气。请有人帮助我。我添加了一个屏幕截图。
【问题讨论】:
文件 -> 其他设置 -> 默认项目结构...
你可以在那里改变它。
(编辑:现在称为“新项目结构”)
【讨论】:
如果是maven项目,请确保设置如下。
例如,如果您想使用 Java 8 语言特性(-source 1.8)并且还希望编译的类与 JVM 1.8(-target 1.8)兼容,您可以添加以下两个属性,它们是插件参数的默认属性名称:
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
更多详情请查看this
【讨论】:
我有同样的问题。更改 IntelliJ IDEA 设置文件(misc.xml、compiler.xml)没有帮助。然后我在两个地方更改了语言级别:
1) 文件 -> 项目结构 -> 模块,“源”选项卡,语言级别 8(或更高)。
2) 设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器 -> 目标字节码版本(1.8版)
这很好用。
【讨论】:
Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler,从Porject bytecode version 中删除了号码,然后它变成了Same as level language;相同的选项卡,将Per-module bytecode version: 部分删除<my module> 并再次添加,它在Target bytecode version 下显示为Same as language level;在Project Structure -> Poject,级别更改为与项目SDK版本相同;在相同的项目设置中,在选项卡Modules 中,将语言级别更改为与项目 SDK 相同。运行Invalidate Caches ... 然后它工作了。
我按照上面的建议将设置更改为 Java 8...->默认项目结构。
它没有工作!我仍然无法在编辑器中正确编写 Lambda。
创建项目时,我选择了 Gradle 作为构建工具。 出于某种原因,我的 Java/Gradle 项目将 build.gradle 文件中的源代码兼容性设置为 1.5(可能是因为我的默认值最初设置为 1.5...我不知道,因为我懒得重现它):
apply plugin: 'java'
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
将 sourceCompatibility 更改为 1.8 解决了这个问题,因为对 gradle 文件的更新也会触发项目构建。
智者的话:
Intelij 上的任何新手都应该记住,不要选择任何一个 Maven 或 Gradle 与您的 Java 项目创建一起不会设置 必需的默认包(src/main/test 和 src/main/java)结构; 对于 eclipse 用户来说,这在第一次开始时真是令人头疼 使用 Intelij。
【讨论】:
同样的问题,但解决方案略有不同。 IntelliJ (2018.1.15) 给了我将语言级别设置为 6 的选项,我接受了。这将以下内容添加到项目 .iml 文件中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>6</source>
<target>6</target>
</configuration>
</plugin>
</plugins>
</build>
然后我能够将源和目标更新为 8。
【讨论】:
我必须编辑 .idea/misc.xml 并将 languageLevel="JDK_1_7" 更改为 languageLevel="JDK_1_8"。我一直无法通过 osx 中的 ui 更改语言级别。
** Intellij 15.0.4
【讨论】: