IntelliJ IDEA 使用 JDK 编译出现警告 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
joshryo
V2EX    Java

IntelliJ IDEA 使用 JDK 编译出现警告

  •  
  •   joshryo 2015-04-02 23:21:06 +08:00 6221 次点击
    这是一个创建于 3910 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近转用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 warings 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 条附言    2015-04-03 15:21:14 +08:00
    出现问题的原因是当项目/模块/目标字节码指定成1.5以后,会使用运行IDEA所配置的JDK版本进行编译(可在Help->About查看),而配置成非1.5版本,则会使用指定的JDK编译。具体原因不清楚,也有可能是我1.5的JDK有问题?(不过Eclipse倒是没这问题)
    8 条回复    2015-04-29 12:25:12 +08:00
    SoloCompany
        1
    SoloCompany  
       2015-04-03 00:19:11 +08:00
    这和 IDEA 没关系,这个英文不难懂吧?是 java 8 告诉你说 1.5 (包括)之前的兼容编译开关很快就会不支持了,让你尽快升级你的编译参数到1.6以上,是否有兼容问题就要你自己验证了
    FrankFang128
        2
    FrankFang128  
       2015-04-03 00:27:51 +08:00
    管不得用 1.5
    FrankFang128
        3
    FrankFang128  
       2015-04-03 00:28:00 +08:00
    怪不得用 1.5
    joshryo
        4
    joshryo  
    OP
       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
        5
    SoloCompany  
       2015-04-03 00:56:13 +08:00
    @joshryo 你需要补习一下 java 基本知识
    SoloCompany
        6
    SoloCompany  
       2015-04-03 00:59:24 +08:00
    另外我猜你是没配对项目的 JDK 或者模块的 JDK,你可能以为自己配置了项目的 JDK 是 1.5 但实际确是 1.8,注意搞清楚 JDK 版本(就是你使用那个编译器)和你的代码目标版本(就是 javac 的 source 和 target 参数)的区别,你大概不是搞混了吧
    joshryo
        7
    joshryo  
    OP
       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
        8
    unionx  
       2015-04-29 12:25:12 +08:00
    你应该用 maven-compiler-plugin 来指定 JDK 和 JRE 的版本
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5177 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 07:38 PVG 15:38 LAX 23:38 JFK 02:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86