最近转用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编译了么?
1
SoloCompany 2015-04-03 00:19:11 +08:00
这和 IDEA 没关系,这个英文不难懂吧?是 java 8 告诉你说 1.5 (包括)之前的兼容编译开关很快就会不支持了,让你尽快升级你的编译参数到1.6以上,是否有兼容问题就要你自己验证了
|
2
FrankFang128 2015-04-03 00:27:51 +08:00
管不得用 1.5
|
3
FrankFang128 2015-04-03 00:28:00 +08:00
怪不得用 1.5
|
4
joshryo OP @SoloCompany 我模块本身用的是1.5,编译的项目字节码也是指定1.5,为何1.8要跳出来提示?这才是我纳闷的地方,同样环境配置Eclipse下面就可以依照指定的JDK进行编译。
@FrankFang128 这不是怪用不用的问题,我也想用7,8,甲方生产上用着5,我弄个7,8编译过去这不明显着看UnsupportedClassVersion出来抽脸么。况且环境上的问题,甲方一句“咱就用这个!”枉费你若干口舌。 |
5
SoloCompany 2015-04-03 00:56:13 +08:00
@joshryo 你需要补习一下 java 基本知识
|
6
SoloCompany 2015-04-03 00:59:24 +08:00
另外我猜你是没配对项目的 JDK 或者模块的 JDK,你可能以为自己配置了项目的 JDK 是 1.5 但实际确是 1.8,注意搞清楚 JDK 版本(就是你使用那个编译器)和你的代码目标版本(就是 javac 的 source 和 target 参数)的区别,你大概不是搞混了吧
|
7
joshryo OP @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... |
8
unionx 2015-04-29 12:25:12 +08:00
你应该用 maven-compiler-plugin 来指定 JDK 和 JRE 的版本
|