IntelliJ IDEA 使用 JDK 编译出现警告

2015-04-02 23:21:06 +08:00
 joshryo

最近转用IntelliJ IDEA进行开发,因为各种原因,在机器上安装了从1.5~1.8版本的JDK。
公司的项目一般使用JDK1.5开发维护,但是在编译过程中会出现如下提示:

Information:Using javac 1.8.0_40 to compile java sources
Information:4/2/2015 11:04 PM - Compilation completed successfully with 3 warnings in 2s 32ms
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就一切正常,难道IntelliJ IDEA现在已经不支持JDK1.5编译了么?

5866 次点击
所在节点    Java
8 条回复
SoloCompany
2015-04-03 00:19:11 +08:00
这和 IDEA 没关系,这个英文不难懂吧?是 java 8 告诉你说 1.5 (包括)之前的兼容编译开关很快就会不支持了,让你尽快升级你的编译参数到1.6以上,是否有兼容问题就要你自己验证了
FrankFang128
2015-04-03 00:27:51 +08:00
管不得用 1.5
FrankFang128
2015-04-03 00:28:00 +08:00
怪不得用 1.5
joshryo
2015-04-03 00:43:58 +08:00
@SoloCompany 我模块本身用的是1.5,编译的项目字节码也是指定1.5,为何1.8要跳出来提示?这才是我纳闷的地方,同样环境配置Eclipse下面就可以依照指定的JDK进行编译。
@FrankFang128 这不是怪用不用的问题,我也想用7,8,甲方生产上用着5,我弄个7,8编译过去这不明显着看UnsupportedClassVersion出来抽脸么。况且环境上的问题,甲方一句“咱就用这个!”枉费你若干口舌。
SoloCompany
2015-04-03 00:56:13 +08:00
@joshryo 你需要补习一下 java 基本知识
SoloCompany
2015-04-03 00:59:24 +08:00
另外我猜你是没配对项目的 JDK 或者模块的 JDK,你可能以为自己配置了项目的 JDK 是 1.5 但实际确是 1.8,注意搞清楚 JDK 版本(就是你使用那个编译器)和你的代码目标版本(就是 javac 的 source 和 target 参数)的区别,你大概不是搞混了吧
joshryo
2015-04-03 04:41:45 +08:00
@SoloCompany 谢谢你的提醒,正是因为这样我才发了这个问题,我同样只是修改了模块/项目JDK为1.6,编译字节码指定为1.6。编译出现的提示信息类似如下:

Information:Using javac 1.6.0_45 to compile java sources
Information:4/2/2015 11:04 PM - Compilation completed successfully in 2s 32ms

如此,1.7,1.8 都可以按照我指定的JDK版本编译
一旦指定1.5,就会出现使用1.8.0_40编译,然后三条警告1.5参数已经被废弃啦,马上就要被删除啦,balabala...
unionx
2015-04-29 12:25:12 +08:00
你应该用 maven-compiler-plugin 来指定 JDK 和 JRE 的版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181232

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX