簡體   English   中英

設置ant bootclasspath:JDK 1.7有一個新的javac警告,用於設置沒有bootclasspath的舊源

[英]Set ant bootclasspath: JDK 1.7 has a new javac warning for setting an older source without bootclasspath

如何將ant bootclasspath與-source 1.5 -target 1.5一起設置?

這怎么可能不是1.5 JDK的硬編碼路徑? 我可以將環境變量設置為bootclasspath,類似於如何從ant使用JAVA_HOME嗎?

理想情況下,我想做一些事情,例如設置環境變量或將參數傳遞給ant。

以下是如何從環境變量中獲取Java 5引導類位置,然后使用它的說明。

首先,設置環境變量 - 比如說JAVA5_BOOTCLASSES property任務使您可以訪問環境,然后javac任務bootclasspath參數將設置傳遞給編譯器。

<property environment="env" />
<property name="java5.boot.classpath" value="${env.JAVA5_BOOTCLASSES}" />

<javac source="1.5" target="1.5"
       bootclasspath="${java5.boot.classpath}"
       ...
/>

請注意,如果未設置環境變量,Ant將忽略它並繼續運行 - 因此編譯器將回退到默認的引導類路徑。

如果合適,另一個選項是關閉警告 ,而不是打擾bootclasspath。 就像是

<javac srcdir= ... >
    <compilerarg arg="-Xlint:-options" />
</javac>

但這可能會讓你暴露出一些微妙的錯誤。

值得注意的是,變量JAVA5_BOOTCLASSES應該包含所有需要的庫,而不僅僅是rt.jar。 在我的情況下,它也是jce.jar所以在* nix環境中使用這個簡單的代碼段來設置這個變量是很好的:

export JAVA5_BOOTCLASSES=""
for i in /usr/lib/jvm/java/jre/lib/*.jar; do 
    export JAVA5_BOOTCLASSES=$JAVA5_BOOTCLASSES:$i
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM