2016-02-29 154 views
0

我正在玩javac,我无法编译简单的java类到1.7版本。javac:目标版本7与默认源版本1.8冲突

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 

可能是什么原因?

回答

0

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

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

+0

这将是有道理的,如果不是因为它有一个'-target'参数;假设'javac'无法为以前的版本生成字节码,为什么它甚至会有这样的参数? –

2

添加一个匹配你的目标的源,所以我相信1.7。应该修复它。

否则,你正在编译所有那些很酷的1.8关闭到一个1.7罐,运行在一个1.7 jvm这是不会工作。