IntelliJ IDEA 14 不同版本JDK编译问题

joshryo 发布于 2015/04/03 12:20
阅读 15K+
收藏 0

在使用IntelliJ IDEA 14.1.1开发项目的过程中,因为公司,生产,个人的问题,所以机器上安装JDK1.5~1.8的版本,避免高版本编译在低版本上运行出现UnsupportedClassVersionError。

但是只要指定使用JDK1.5时,Ctrl+Shift+F9编译某一个Java文件,编译结果就有提示:

Information:Using javac 1.8.0_40 to compile java sources
Information:4/3/2015 10:08 AM - Compilation completed successfully with 3 warnings in 1s 996ms
Warning:java: source value 1.5 is obsolete and will be removed in a future release
Warning:java: target value 1.5 is obsolete and will be removed in a future release
Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.



不知为何调用了JDK1.8去编译文件,但是改为JDK1.6~1.8,编译结果提示:

Information:Using javac 1.6.0_45 to compile java sources
Information:4/3/2015 10:01 AM - Compilation completed successfully in 2s 546ms

Information:Using javac 1.7.0_75 to compile java sources
Information:4/3/2015 10:02 AM - Compilation completed successfully in 1s 837ms

Information:Using javac 1.8.0_40 to compile java sources
Information:4/3/2015 10:06 AM - Compilation completed successfully in 3s 283ms


IDEA编译环境如下:
1.在IDEA中将1.5~1.8都加入到Platform Settings下的SDKs
2.在Project SettingsProject里面将项目SDK设置为1.5,语言级别也设置为5.0
3.Modules中将模块SDK也设置为1.5,语言级别也设置为5.0
4.在Complier中的Java Complier中将项目字节码也设置为1.5版本


只要将设置中的1.5和5.0替换为1.6~1.8/6~8,编译结果一切正常
另外将IDEA中的JDK1.8不配置进1中,仍然会提示使用1.8编译同时给出1.5警告,但是机器本身的环境变量中Java是使用的JDK1.7,不知道是我哪里环境配错了还是什么原因,还望指点。

最后,采用JDK高版本编译但是其中的bytecode和Language Leve都选择低版本是不是仍有可能出现运行异常?

以下是问题补充:

@joshryo:进过验证,使用JDK1.5编译时,IDEA会调用配置给IDEA运行的JDK开编译文件,而忽略掉JDK1.5;非1.5则不会有这个问题,具体原因不清楚,不知是我的问题,还是IDEA 14不支持JDK1.5了。 (2015/04/03 16:13)
加载中
返回顶部
顶部