我为我的 Java 应用程序构建了一个 ant。我被迫让我的应用程序与 Java 1.6 兼容。
当我运行我的 ant 脚本时,我收到以下警告:
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
你能解释一下这是什么意思吗?我应该怎么做才能删除它?代码工作正常,但我要把它投入生产,我不想让这种警告得不到解决。
我的 build.xml 文件如下所示:
<path id="master-classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="compile" depends="clean">
<javac srcdir="src" destdir="${bin-dir}" debug="on" source="1.6" includeantruntime="false">
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="clean">
<mkdir dir="${bin-dir}"/>
<mkdir dir="${build-dir}"/>
<delete>
<fileset dir="${bin-dir}"/>
<fileset dir="${build-dir}"/>
</delete>
</target>
Ant 版本:Ant(TM) 版本 1.8.2
Java 版本:javac 1.7.0_79
最佳答案
这意味着尽管您使用了 -source
选项,您仍然拥有 JDK 1.7 库,因此 javac 不能保证您的代码可以在 Java 1.6 上运行。 Javac 将检查您是否没有使用新的语法特性(如 try-with-resources
运算符),但它无法检查您是否正在使用新的 API 方法(如 java.nio.file.文件
类)。所以即使编译正确,也可能无法正常工作。
在我看来,最好的解决方案是使用 JDK 1.6 进行编译。警告建议您提供指向已安装的 JRE 1.6 的自定义 Bootstrap 类路径。因此,如果您有 JRE 1.6,但不想在 JDK 1.6 上运行整个构建,则可以遵循此建议。
关于java - 在 ant 编译 javac 期间发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845655/