[JDK] Intellij IDEA中设置JDK版本
引言
java: 警告: 源发行版 15 需要目标发行版 15
1 Intellij IDEA 修改JDK版本
第1步:配置JDK环境变量
装好JDK之后,要添加一个环境变量:JAVA_HOME
第2步:修改Idea配置
由Maven决定的版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- <version>3.5.1</version> -->
<!-- 指定maven编译的jdk版本。对于JDK8,写成8或者1.8都可以 -->
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
这个Maven设置会自动修改如下2个配置:
1.IDEA中编译工具的JDK版本
File=> Setting=> Build,Execution,Deployment=>
Complier=> Java Compiler=> Per-module bytecode version=> Target bytecode version
2.IDEA中模块的JDK版本
File=> Project Structure=> Project Settings=>
Modules=> Modules=> Sources=> Language level
补充:借助IDEA软件辅助设置的JDK版本流程
设置构建工具(Maven/Gradle)的JDK版本
File=> Setting=> Build,Execution,Deployment=>
Build Tools=>
Maven=>
importing=> JDK for importer
Runner=> JRE
Gradle=>
Gradle JVM
设置平台的JDK
File=> Project Structure=> Platform Settings=> SDKs
设置【项目】和【模块】的JDK版本
方法1
File=> Project Structure=> Project Settings=>
Project=> Project SDK
Modules=> Dependencies=> Module SDK
方法2
Settings -> ... -> Java Compiler -> Per-Module bytecode version(为每个工程模块设置JDK版本)
设置指定Application/JUnit/main方法类的运行时JDK版本
Run=> Edit Configurations=> Run/Debug Configurations
若应用为 SpringBoot:Configuration=> Environment=> JRE=> 选择正确的JRE
若应用为 Application:Build and run=> 选择正确的JDK
若应用为 JUnit : Run => Configuration => 选择正确的JDK
补充:通过 Maven settings 设置JDK版本
未亲测
<!-- 让 idea 的 maven 项目 pom.xml文件变成jdk1.8的配置 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
2 扩展
2.1 Java启动参数-D
java程序启动参数 -D
是用来做什么的呢?去查询了一下官方解释:
Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes:
java -Dfoo="some string" SomeClass
也就是说-D
是用来在启动一个java程序时设置系统属性值的。如果该值是一个字符串且包含空格,那么需要包在一对双引号中。
何为系统属性值呢?也就是在System类中通过System.getProperties()
得到的一串系统属性。
下面我们来写个测试方法就知道了!
/**
* @author lmfeng
* @date 2018/05/30
*/
public class SystemProperty {
public static void main(String[] args){
System.out.print(System.getProperty("dubbo.token"));
}
}
在运行改程序时加上JVM参数-Ddubbo.token="666"
或者 -Ddubbo.token=666
,那么运行之后你可以看到控制台输出了666!
一点值得注意的是,需要设置的是JVM参数而不是program参数,注意看下图
demo1
demo2
public class SystemTest {
private static final Logger logger = LoggerFactory.getLogger(SystemTest.class);
@Test
public void getPropertiesTest(){
Properties properties = System.getProperties();
properties.entrySet().forEach(entry -> {
logger.warn(entry.getKey() + " : " + entry.getValue());
});
}
}
2.2 Q:Maven Install 成功,在IDEA的各项JDK配置也按上述配置无误,但通过运行/Debug时报:"Java Build Fail, 警告 源发行版 9 需要目标发行版 1.9"
Step1:尝试重启IDEA
Step2 尝试删除所属模块的 .iml
文件,并重新生成IDEA的.iml
文件
- 可直接打开、查验
.iml
文件的配置情况
有时IDEA对该核心配置文件没有及时更新,是存在bug的可能的。
- 重新生成IDEA的
.iml
文件的方法:
mvn idea:module
Step3 清理IDEA缓存
X 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!