在Eclipse Kepler中执行Ant1.9构建时wlcompile任务遇206错误求助
解决Ant wlcompile任务报错CreateProcess error=206及JClass类解析警告问题
我来帮你搞定这个Ant构建的问题,这俩错误其实是相关联的,先给你拆解清楚解决方案:
一、先解决核心错误:CreateProcess error=206(文件名或扩展名太长)
这个错误是Windows系统的老毛病了——命令行能容纳的参数长度有限,当wlcompile任务把大量依赖Jar包拼到classpath里时,总长度就会超出限制,触发这个异常。给你两个靠谱的解决办法:
方案1:用Ant的classpath文件规避长参数
Ant支持把classpath写入一个文本文件,再通过@符号引用,这样就不会把所有Jar路径都堆在命令行里了。修改你的Ant脚本步骤如下:
- 先加一个准备classpath文件的target:
<target name="prepare-classpath"> <!-- 定义项目的完整classpath,把你原来wlcompile用的依赖都放这里 --> <path id="project.classpath"> <pathelement location="${weblogic.home}/server/lib/weblogic.jar"/> <fileset dir="${dist}" includes="**/*.jar"/> <!-- 其他项目依赖路径... --> </path> <!-- 把classpath转换成Windows格式的路径字符串,写入临时文件 --> <pathconvert pathsep=";" property="classpath.content" refid="project.classpath"/> <echo file="${build}/classpath.txt">${classpath.content}</echo> </target>
- 修改你的
build.eartarget,让它依赖上面的准备任务,并引用这个classpath文件:
<target name="build.ear" depends="prepare-classpath"> <wlcompile srcdir="${dist}" destdir="${build}/ear"> <classpath> <pathelement location="@${build}/classpath.txt"/> </classpath> <!-- 你原来的wlcompile其他配置... --> </wlcompile> </target>
方案2:缩短路径长度
如果不想改脚本,也可以从物理路径入手:
- 把整个项目或者依赖库移到更短的目录下,比如从
C:\Users\YourLongUsername\Documents\BigWorkspace\ComplexEnterpriseApp改成C:\Work\MyApp,直接减少路径字符数。 - 给长路径的依赖库创建符号链接(Windows下用管理员权限打开命令提示符):
mklink /J C:\ShortLibs C:\Your\Super\Long\Path\To\ThirdPartyLibs
之后在Ant脚本里引用C:\ShortLibs下的Jar包就行。
二、解决[JAM]Warning: failed to resolve class com.bea.util.jar.JClass
这个警告是因为WebLogic的工具类Jar没被加入classpath,com.bea.util.jar.JClass属于WebLogic的utils.jar,你需要:
- 找到WebLogic安装目录下的
server/lib/utils.jar(比如${weblogic.home}/server/lib/utils.jar),把它添加到刚才定义的project.classpath里。 - 或者更省心的方式:生成WebLogic的全量客户端Jar,在WebLogic的
server/lib目录下执行命令:
java -jar wljarbuilder.jar -profile wlfullclient
生成的wlfullclient.jar包含了所有WebLogic工具类,把它加入classpath就能解决大部分类解析问题。
额外提醒
- 确保Eclipse里Ant的运行JDK和WebLogic兼容(Kepler搭配JDK 7/8,WebLogic 12c是比较稳妥的组合)。
- 检查脚本里的变量(
${dist}、${build}、${weblogic.home})有没有拼写错误,路径是否正确指向目标目录。
内容的提问来源于stack exchange,提问作者Veronica
相关产品推荐
相关产品推荐

