我正在尝试运行一个使用 axis2-ant-plugin-1.6.0.jar\org\apache\axis2\tool\ant\AntCodegenTask
执行 WSDL2Java
操作。
在ant脚本的顶部,我定义 java6.boot.classpath
:
<property name="java6.boot.classpath" value="${env.JAVA6_BOOT_CLASSES}"/>
而且我有 JAVA6_BOOT_CLASSES
环境变量设置为 C:\dev\java\64-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
有什么想法吗?我觉得我已经为Java1.6适当地设置了引导类路径,但是ant似乎不同意。
3条答案
按热度按时间hfwmuf9z1#
我将java6\u boot\u classes环境变量设置为c:\dev\java\64位\jdk-1.6.0\u 45\bin。
这就是问题所在。将bootclasspath设置为指向包含rt.jar的目录。它应该是这样的:c:\dev\java\64位\jdk-1.6.0\u45\jre\lib
bvn4nwqk2#
在蚂蚁里
build.xml
文件创建一个指向Java6的属性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" />
您也可以在中直接指定bootclasspathjavac
任务使用bootclasspath
属性7vhp5slm3#
这不是ant而是jdk的javac发出的警告。
如果使用Java7的javac和-source来处理小于7javac的任何东西,那么还应该将引导类路径设置为指向旧的rt.jar,因为这是确保结果在旧的vm上可用的唯一方法。
https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
这只是一个警告,因此您可以忽略它,甚至使用
或者,您可以安装一个旧的jvm并相应地调整bootclasspath(您需要包括
rt.jar
,而不是bin
文件夹)