前言
高高兴兴写完程序准备运行测试下,试图顺利得到自己想要的结果。好家伙,这编译一闪而过的是什么东西。这样8行,要检查下。于是,rebuild project出现Warning。提示给出说使用的是1.8的java sources(本地是1.8的环境),而warning指的是1.5。既然出现了问题,那么就去找找看怎么解决了!!!
解决方法
1.首先进入Project Structure去更改配置:
- File -> Project Structure
- 快捷键:Ctrl + Shift + Alt + S
2.接下来就是图文展示:
a. 将Project SDK和Project language level的版本要对应自己的JDK环境(比如我的是JDK1.8)
b. 将Language level的版本对应上本地SDK环境(1.8),最后记得点击Apply和OK来保存修改
c. 这样,我就在顺利拿到自己准确的测试结果的同时,也解决了这个warning警告。
------------------------------------------------------------------------------分隔线--------------------------------------------------------------------------------
后续
在查看解决方案时,有发现:
- 部分人像我这样更改后还是出现了编译上的警告
- 最最重要的是,在我用一段时间之后/创建新的maven项目时,又出现了编译警告
那就更新下该博客吧~
问题如下
- Error:java:Compilation failed:internal java compiler error
- 重新创建项目或者导入项目时,又要像本篇博客那样操作一遍
对此,来一个一个改。
首先来改一下这个compiler error问题
File -> Setting -> [Build,Execution,Deployment] -> Compiler -> Java Compiler
通过上述传送门进到Java Compiler中将Project bytecode version的版本和下面的当前项目模块的Module->Target bytecode version版本对应上,然后保存出去运行测试,就 成功 了。(JDK8)
重新创建项目或者导入项目时又是1.5的Warning问题
这里为了不用每次都这样繁琐的操作一遍,什么改modles中的配置啊,改java compiler中的配置等操作容易忘记。那么统一、便捷、自定义操作安排一波:
在pom.xml中配置maven-compiler-plugin插件,通过该插件来直接将项目的language level和java compiler校正。
第一种是在配置maven-compiler-plugin信息时,把JDK版本直接写在configuration中:
<!-- 配置maven-compiler-plugin插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
第二种是把JDK版本直接写在configuration中:
<!-- source和target版本对应配置 -->
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<!-- 配置maven-compiler-plugin插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
</plugin>
</plugins>
</build>
大概就这些了,可以清楚地解决在使用IDEA 创建MAVEN项目 或者 运行项目 过程中,遇见warning(language level)等等一系列问题了。
好了,万事俱备,只欠HELLO WORLD (「・ω・)「