如何将ant bootclasspath与-source 1.5 -target 1.5?
一起设置这怎么可能不是1.5 JDK的硬编码路径?我可以将环境变量设置为bootclasspath,类似于如何从ant使用JAVA_HOME吗?
理想情况下,我想做一些设置环境变量或将参数传递给ant。
答案 0 :(得分:16)
以下是如何从环境变量中获取Java 5引导类位置,然后使用它的说明。
首先,设置环境变量 - 比如JAVA5_BOOTCLASSES
。
property
task使您可以访问环境,然后javac
task的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将忽略它并继续运行 - 因此编译器将回退到默认的引导类路径。
另一个选项(如果适用)是switch off the warnings,而不是打扰引导类路径。像
这样的东西<javac srcdir= ... >
<compilerarg arg="-Xlint:-options" />
</javac>
但是这可能会让你遇到一些微妙的错误。
答案 1 :(得分:3)
值得注意的是变量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