2016-02-29 117 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這是不會工作。