解决问题的方法很重要,遇到问题,首先需要分析问题的原因,然后在网上寻找其他人有没有遇到过相关的问题。主要看没有借鉴的意义,如果别人直接遇到过一样的问题,而且解决方案对你的问题也是行之有效的,这当然是最好的。然而计算机世界纷繁复杂啊,你永远不知道是哪一块出了问题。
这个问题我第一眼看应该是因为jdk的版本不对,这是确定了问题的边界。
因为我的工作项目是从原有的eclipse项目导入的Intellij中的,而我的Intellij的默认SDK是1.8版本的,项目中使用了1.7的一些jar包,换了之后项目编译出错了,想了想改动量和需要验证的量,我退缩了。需要在1.7下编译,但是当我换了项目的project sdk之后就报错Error:java: 无效的源发行版: 8(高能预警:应该就是我IntelliJ的默认配置的jdk 8埋下的伏笔)
在寻求网上的方案失败之后,我就一个个看我项目的配置项目,在下图中,我看到了熟悉的8,这是在项目语言级别的配置,看到了熟悉的lambdas等jdk8新增的特性,这应该就是项目配置的默认的语言级别,看描述也是。
然后我就把这个切换到了7
然后成功了,可以编译打包。
总结:project sdk 和 project language level 需要保持一致