[英]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.