2013-10-17 52 views
0

我在維護一個最初由1.4編寫的舊Java項目,現在正在遷移到Java 7環境。該項目使用Ant。試圖找到Ant的javac-source 1.4參數來自

建設當我收到以下警告

warning: [options] bootstrap class path not set in conjunction with -source 1.4 

,我想我現在已經做了足夠的閱讀理解,這是因爲我使用了Java 7的編譯器來編譯代碼在運行1.4。但是我不想要這個 - 我想用7編譯器來編譯7個代碼。

使用ant -v我看到參數-source 1.4傳遞給javac命令,但我找不到它來自哪裏。 build.xml使用的build.properties文件都沒有提供這個參數。該項目使用了一些xmlbean功能,並且在build.xml中構建xmlbean目標時發出警告。

我有一些其他項目正在經歷類似的過程,並且這些在構建過程中不會發出警告。在這些項目中,Ant不通過源1.4。到javac他們沒有使用xmlbeans,所以我想也許這個問題可能與此有關。

經過大量的搜索之後,我決定將1.4 rt.jar放在classpath中,並忘記它。然而這並沒有幫助。我首先將它包含在xmlbeans目標的類路徑中,然後作爲整個build.xml文件的'bootclashpath'屬性,但沒有喜悅。

build.xml文件的相關部分看起來像這樣

<target name="xmlbeans" depends="setup"> 
    <xmlbean classgendir="${schema.compile.dir}" destfile="${dist.dir}/${schema.jar.file}" failonerror="true"> 
     <fileset dir="${config.dir}"> 
      <include name="**/*.xsd"/> 
     </fileset> 
     <classpath> 
      <pathelement location="${lib.dir}/xbean.jar"/> 
      <pathelement location="${lib.dir}/jsr173_1.0_api.jar"/> 
     </classpath> 
    </xmlbean> 
</target> 

<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean"> 
    <classpath> 
     <pathelement location="${lib.dir}/xbean.jar"/> 
     <pathelement location="${lib.dir}/jsr173_1.0_api.jar"/> 
    </classpath> 
</taskdef> 

回答

1

似乎XmlBeans是針對原因。
從他們installation instructions
「要求

安裝的XMLBeans之前,你需要有JDK 1.4安裝和Ant一旦你擁有了這些,繼續下面的步驟。」

可能有些xmlbeans內部!檢查他們的來源。
參見替代另一個計算器發佈,如果這是一個選項:
Java Xml Binding

+0

有趣,但你能告訴我怎麼XmlBeans的會影響使用Ant通過編譯器參數?我甚至不知道包含的jar會如何與構建管理器進行溝通 – tomfumb

+0

請參閱http://grepcode.com/file/repo1.maven.org/maven2/org.apache.xmlbeans/xmlbeans/2.4。 0/org/apache/xmlbeans/impl/tool/XMLBean.java - 第264行也會在第782行註釋=「生成與給定版本兼容的Java源代碼,目前僅支持」1.4「或」1.5「是默認的。「 – Rebse

+0

好吧,我仍然不明白這兩個人如何溝通,但它看起來很可能是問題!謝謝。現在我需要弄清楚是否可以使用rt.jar來刪除警告 – tomfumb