2013-12-23 67 views
2

我想用Ant腳本來構建我的Vaadin 6項目。當我手動構建和部署項目時,它可以工作(大部分),但是當我使用ant腳本時,會出現編譯時錯誤。使用Eclipse中不同的JRE的Ant Javac目標? - 「java.lang.UnsupportedClassVersionError:Unsupported major.minor version 51.0」

我的Ant目標看起來是這樣的:

<target name="build" depends="copyconfig" description="Compiles Java code to build directory"> 
    <javac destdir="build" includeantruntime="false"> <!-- Error here --> 
     <src path="src" /> 
     <src path="generated" /> 
     <src path="config" /> 
     <exclude name="**/*_Ex??.java" /> 
     <classpath refid="compile.classpath" /> 
    </javac> 
</target> 

在Eclipse:windows-> preferences -> Java -> Installed JREs我指出:jdk1.7.0_03。在windows -> preferences -> Java -> Compiler我設置compiler complience level: 1.7

當我通過Project->Build project建立我沒有錯誤,但是當我通過Ant腳本構建,我得到: C:\vaadinSpikeWorkspace\DocumentManager\build.xml:55: java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 51.0

我認爲我的Ant腳本使用的是不同版本的編譯器,這就是導致問題的原因(當我通過eclipse手動編譯時,這些問題不會出現)。

但是,我的印象是,JRE向後兼容:即,如果我使用的是最新版本的JRE(1.7),我應該不會遇到不同的編譯器版本問題?

您提供的任何幫助將不勝感激。

回答

8

在Eclipse運行 - >外部工具 - >外部工具配置 - > Ant.build在這裏檢查Jre版本。

+0

現貨!這就是我所需要的:Ant被配置爲運行1.6,並沒有像我想的那樣使用中央eclipse運行時配置。 – Paul

1

java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0意味着你編譯你的代碼對JDK 7,但你嘗試使用JRE 6

你的Eclipse裏面你使用的是JDK 7運行,但在你的路徑,你可能有一箇舊的Java版。

java -version 

可能會幫助你。

相關問題