0

我正在维护一个最初用 1.4 编写的旧 Java 项目,现在正在迁移到 Java 7 环境。该项目使用Ant。

构建时,我收到以下警告

warning: [options] bootstrap class path not set in conjunction with -source 1.4

而且我想我现在已经做了足够的阅读来理解这是因为我正在使用 Java 7 编译器来编译代码以在 1.4 中运行。但是我不想要这个 - 我想使用 7 编译器来构建 7 代码。

使用ant -v我看到参数-source 1.4已传递给 javac 命令,但我找不到它的来源。build.xml 使用的 build.properties 文件都没有提供此参数。该项目使用了一些 xmlbean 功能,并且在 build.xml 中构建 xmlbean 目标时会发出警告。

我还有一些其他项目正在经历类似的过程,这些项目在构建期间不会发出警告。在这些项目中,Ant 没有通过 -source 1.4。到 javac 他们没有使用 xmlbeans,所以我认为问题可能与此有关。

经过大量搜索后,我决定将 1.4 rt.jar 放在类路径中,然后忘记它。然而这并没有帮助。我首先将它包含在 xmlbeans 目标的类路径中,然后作为整个 build.xml 文件的“bootclashpath”属性,但没有任何乐趣。

build.xml 的相关部分如下所示

<target name="xmlbeans" depends="setup">
    <xmlbean classgendir="${schema.compile.dir}" destfile="${dist.dir}/${schema.jar.file}" failonerror="true">
        <fileset dir="${config.dir}">
            <include name="**/*.xsd"/>
        </fileset>
        <classpath>
            <pathelement location="${lib.dir}/xbean.jar"/>
            <pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
        </classpath>
    </xmlbean>
</target>

<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean">
    <classpath>
        <pathelement location="${lib.dir}/xbean.jar"/>
        <pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
    </classpath>
</taskdef>
4

1 回答 1

1

似乎XmlBeans是造成这种情况的原因。
从他们的安装说明中
“要求

在安装 XMLBeans 之前,您需要安装JDK 1.4和 Ant。一旦你有了这些,继续下面的步骤。”

可能是一些 xmlbeans 内部的!?检查他们的来源。
如果可以的话,请参阅另一个 stackoverflow 帖子以获取替代方案:
Java Xml Binding

于 2013-10-17T19:47:21.023 回答