java - 在 ant 编译 javac 期间发出警告

标签 java ant compilation compiler-warnings

我为我的 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/

相关文章:

java - 在我的 Spring Hibernate 项目上获取 InvokingTargetException

javascript - 使用 Angular 设置 http header

testing - Ant 测试编译崩溃

swift - Swift shell 和 Swift compiled 的区别

c - 编译后的 c 可执行文件如何知道如何表示特定内存地址处的一系列位?

java - 在java中的循环中动态使用多个setMethods

java - 将视频托管在服务器上并在jsp页面上播放

java - 如何使用 Ant 对 Jacoco 报告中的类进行分组

java - Eclipse:创建两个共享文件的项目

c# - C#如何将多个文件编译在一起?