有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Ant+Weblogic CreateProcess错误=206

我正在尝试使用ant将ear部署到weblogic服务器

我从以下几点开始:

<target name="deploy">
     <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
     <wldeploy action="deploy" name="projName" source="proj.ear" user="user" password="pass" adminurl="localhost:8050" targets="mytarget"/>
</target>

然而,这给了我以下错误:

taskdef class weblogic.ant.taskdefs.management.WLDeploy cannot be found using the classloader AntClassLoader[]

为了解决这个问题,我修改了taskdef以包含weblogic jar的路径。然而,现在我收到了这个错误:

[wldeploy] weblogic.Deployer -debug -verbose -noexit -name TPD -source C:\Program Files (x86)\Jenkins\jobs\PROJ\workspace\target\dist\proj.ear -targets mytarget -adminurl localhost:8050 -user user -password pass -deploy

[wldeploy] C:\Program Files (x86)\Jenkins\jobs\PROJ\workspace\build.xml:574: java.io.IOException: Cannot run program "D:\jdk1.7\jre\bin\java.exe": CreateProcess error=206, The filename or extension is too long

(以上内容由Jenkins在Windows box上生成)

我有一种感觉,这是由weblogic jar创建的类路径对Windows命令提示符来说太大造成的,但我对Ant的缺乏经验让我怀疑。我已经考虑过使用manifestclasspath,但经验不足再次阻碍了我有效地实现它

有什么好的解决办法


共 (1) 个答案

  1. # 1 楼答案

    DOS命令行在这方面非常有限。解决方法是创建一个“路径jar”。这是一个罐子,里面只有一个。mf文件,其类路径指定了一长串jar的磁盘路径,等等。现在只需将这个路径jar添加到命令行类路径中。这通常比将实际资源打包在一起更方便

    我记得,磁盘路径可以是相对于路径jar本身的。所以舱单。可能看起来像这样:

    Class-Path: this.jar that.jar ../lib/other.jar

    如果您的pathing jar主要包含基础资源,那么它不会经常更改,但您可能仍然希望在构建中的某个地方生成它。例如:

    <jar destfile="pathing.jar"> <manifest> <attribute name="Class-Path" value="this.jar that.jar ../lib/other.jar"/> </manifest> </jar>