设置 ant bootclasspath:JDK 1.7 有一个新的 javac 警告,用于设置没有 bootclasspath 的旧源代码
如何将 ant bootclasspath 与 -source 1.5 -target 1.5 结合使用?
这怎么可能不是1.5 JDK的硬编码路径?我是否可以将环境变量设置为引导类路径,类似于从 ant 使用JAVA_HOME?
理想情况下,我想做一些事情,比如设置一个环境变量或将一个参数传递给蚂蚁。
如何将 ant bootclasspath 与 -source 1.5 -target 1.5 结合使用?
这怎么可能不是1.5 JDK的硬编码路径?我是否可以将环境变量设置为引导类路径,类似于从 ant 使用JAVA_HOME?
理想情况下,我想做一些事情,比如设置一个环境变量或将一个参数传递给蚂蚁。
下图说明了如何从环境变量中获取 Java 5 引导类位置,然后使用它。
首先,设置环境变量 - 比如说。属性
任务允许您访问环境,然后 javac
任务的参数将设置传递给编译器。JAVA5_BOOTCLASSES
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 将忽略它并继续操作 ,而不设置 - 因此编译器将回退到缺省引导类路径。
如果合适,另一种选择是关闭警告,而不是打扰引导类路径。类似的东西
<javac srcdir= ... >
<compilerarg arg="-Xlint:-options" />
</javac>
但这很可能会让你接触到一些微妙的错误。
值得注意的是,变量应该包含所有需要的库,而不仅仅是rt.jar。在我的情况下,它也是jce.jar所以在*nix环境中使用这个简单的代码段设置这个变量是很好的:JAVA5_BOOTCLASSES
export JAVA5_BOOTCLASSES=""
for i in /usr/lib/jvm/java/jre/lib/*.jar; do
export JAVA5_BOOTCLASSES=$JAVA5_BOOTCLASSES:$i
done