Ant javac 任务出错:[javac] 警告:[选项] bootstrap class 路径未与 -source 1.6 一起设置
Ant javac task errs out: [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
我正在尝试 运行 使用 axis2-ant-plugin-1.6.0.jar\org\apache\axis2\tool\ant\AntCodegenTask
执行 WSDL2Java
操作的 ant 任务。
在ant脚本的顶部,我定义了java6.boot.classpath
:
<property name="java6.boot.classpath" value="${env.JAVA6_BOOT_CLASSES}"/>
并且我将 JAVA6_BOOT_CLASSES
环境变量设置为 C:\dev\java-bit\jdk-1.6.0_45\bin
。
相关蚂蚁目标如下:
<!-- dist.jar target -->
<target name="dist.jar" depends="generate"
description="Creates the web services client jar file">
<echo>Compiling web services client code</echo>
<javac srcdir="${project.javapath}" destdir="${build}"
source="1.6" target="1.6"
debug="true" debuglevel="lines,vars,source"
excludes="com/company/junit/**"
bootclasspath="${java6.boot.classpath}"
includeantruntime="false">
<classpath refid="compile.classpath" />
</javac>
<echo>Creating ${jarname}.jar</echo>
<jar destfile="${dist}/${jarname}.jar" basedir="${build}" />
<echo>${jarname}.jar created</echo>
</target>
尝试运行,但是,我收到名义错误:
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
有什么想法吗?我觉得我已经为 Java 1.6 适当地设置了引导类路径,但 ant 似乎不同意。
发出警告的不是 Ant,而是 JDK 的 javac。
如果你使用 Java 7 的 javac 和 -source 任何小于 7 的东西 javac 警告你你还应该设置 bootstrap 类路径指向旧的 rt.jar - 因为这是确保结果可用于较旧 VM 的唯一方法。
https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
这只是一个警告,所以您可以忽略它,甚至用
抑制它
<compilerarg value="-Xlint:-options"/>
或者你真的安装一个旧的 JVM 并相应地调整你的引导类路径(你需要包括 rt.jar
,而不是 bin
文件夹)
在 ant build.xml
文件中创建一个 属性,它将指向 Java 6 rt.jar
<path id="boot.classpath" location="C:/Program Files (x86)/Java/jre6/lib/rt.jar" />
并在javac
任务中引用它:
<javac srcdir="${src}" bootclasspathref="boot.classpath" classpathref="classpath" includeantruntime="false" destdir="${build}" source="1.6" target="1.6" />
您也可以使用bootclasspath
属性
在javac
任务中直接指定bootclasspath
And I have the JAVA6_BOOT_CLASSES environment variable set to
C:\dev\java-bit\jdk-1.6.0_45\bin.
这就是问题所在。将引导类路径设置为指向包含 rt.jar 的目录。它应该像:C:\dev\java-bit\jdk-1.6.0_45\jre\lib
我正在尝试 运行 使用 axis2-ant-plugin-1.6.0.jar\org\apache\axis2\tool\ant\AntCodegenTask
执行 WSDL2Java
操作的 ant 任务。
在ant脚本的顶部,我定义了java6.boot.classpath
:
<property name="java6.boot.classpath" value="${env.JAVA6_BOOT_CLASSES}"/>
并且我将 JAVA6_BOOT_CLASSES
环境变量设置为 C:\dev\java-bit\jdk-1.6.0_45\bin
。
相关蚂蚁目标如下:
<!-- dist.jar target -->
<target name="dist.jar" depends="generate"
description="Creates the web services client jar file">
<echo>Compiling web services client code</echo>
<javac srcdir="${project.javapath}" destdir="${build}"
source="1.6" target="1.6"
debug="true" debuglevel="lines,vars,source"
excludes="com/company/junit/**"
bootclasspath="${java6.boot.classpath}"
includeantruntime="false">
<classpath refid="compile.classpath" />
</javac>
<echo>Creating ${jarname}.jar</echo>
<jar destfile="${dist}/${jarname}.jar" basedir="${build}" />
<echo>${jarname}.jar created</echo>
</target>
尝试运行,但是,我收到名义错误:
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
有什么想法吗?我觉得我已经为 Java 1.6 适当地设置了引导类路径,但 ant 似乎不同意。
发出警告的不是 Ant,而是 JDK 的 javac。
如果你使用 Java 7 的 javac 和 -source 任何小于 7 的东西 javac 警告你你还应该设置 bootstrap 类路径指向旧的 rt.jar - 因为这是确保结果可用于较旧 VM 的唯一方法。
https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
这只是一个警告,所以您可以忽略它,甚至用
抑制它<compilerarg value="-Xlint:-options"/>
或者你真的安装一个旧的 JVM 并相应地调整你的引导类路径(你需要包括 rt.jar
,而不是 bin
文件夹)
在 ant build.xml
文件中创建一个 属性,它将指向 Java 6 rt.jar
<path id="boot.classpath" location="C:/Program Files (x86)/Java/jre6/lib/rt.jar" />
并在javac
任务中引用它:
<javac srcdir="${src}" bootclasspathref="boot.classpath" classpathref="classpath" includeantruntime="false" destdir="${build}" source="1.6" target="1.6" />
您也可以使用bootclasspath
属性
javac
任务中直接指定bootclasspath
And I have the JAVA6_BOOT_CLASSES environment variable set to C:\dev\java-bit\jdk-1.6.0_45\bin.
这就是问题所在。将引导类路径设置为指向包含 rt.jar 的目录。它应该像:C:\dev\java-bit\jdk-1.6.0_45\jre\lib