【问题标题】:javac: target release 7 conflicts with default source release 1.8 [duplicate]javac:目标版本 7 与默认源版本 1.8 冲突 [重复]
【发布时间】:2016-02-29 22:03:35
【问题描述】:

我正在玩 javac,我无法将简单的 java 类编译为 1.7 版本。

C:\Tests>javac -target 7 GreetingsUniverse.java -nowarn
javac: target release 7 conflicts with default source release 1.8

C:\Tests>javac -version
javac 1.8.0_73

可能是什么原因?

【问题讨论】:

    标签: java


    【解决方案1】:

    添加一个与你的 -target 匹配的 -source,所以我相信 1.7。应该修复它。

    否则,您会将所有那些很酷的 1.8 闭包编译到 1.7 jar 上以在 1.7 jvm 上运行,这将无法正常工作。

    【讨论】:

    • 它发出警告,但成功运行 javac -target 1.7 -source 1.7 newq.java
    【解决方案2】:

    这仅仅意味着来自1.n 版本的JDK 发行版中的javac 程序可以在1.n 或更高版本的java 程序上运行。

    您使用的是来自 JDK 版本 1.8.0_73javac,这意味着编译后的字节码只能由 JRE 版本 1.8 或更高版本执行。

    【讨论】:

    • 这是有道理的,如果不是因为它有一个-target 参数;假设javac无法为以前的版本生成字节码,为什么还要有这样的参数?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2014-03-08
    相关资源
    最近更新 更多