javac:目标版本7与默认源版本1.8冲突

javac:目标版本7与默认源版本1.8冲突,java,Java,我在玩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 原因可能是什么?这仅仅意味着版本为1.n的JDK发行版的javac程序可以在版本为1.n或更高版本的j

我在玩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

原因可能是什么?

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


您正在使用JDK发行版
1.8.0_73
中的
javac
,这意味着编译的字节码只能由JRE发行版
1.8
或更高版本执行。

添加一个与您的-target匹配的-source,因此我相信是1.7。你应该把它修好


否则,您将把所有那些很酷的1.8闭包编译到一个1.7 jar上,以便在1.7 jvm上运行,而这个jvm是不起作用的。

如果不是因为它有一个
-target
参数,那么这是有意义的;假设
javac
无法为以前的版本生成字节码,为什么它甚至会有这样一个参数?它给出了警告,但成功地运行了
javac-target 1.7-source 1.7 newq.java