4

我试图在 Windows 环境中使用 ant 构建脚本执行我的 java 程序。

但我得到以下问题。这是在linux环境下工作的。

    [1] 初始化:

    编译:

    股票报价:
         [java] C:\wso2esb-4.0.0-SNAPSHOT\samples\axis2Client\build.xml:128: java.io.IOException: 无法运行程序“C:\Program Files\Java\jdk1.6.0_20\jr
    e\bin\java.exe": CreateProcess error=87, 参数不正确
         [java] 在 org.apache.tools.ant.taskdefs.Java.fork(Java.java:798)
         [java] 在 org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:214)
         [java] 在 org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
         [java] 在 org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
         [java] 在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
         [java] 在 sun.reflect.GeneratedMethodAccessor6.invoke(未知来源)
         [java] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         [java] 在 java.lang.reflect.Method.invoke(Method.java:597)
         [java] 在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
         [java] 在 org.apache.tools.ant.Task.perform(Task.java:348)
         [java] 在 org.apache.tools.ant.Target.execute(Target.java:390)
         [java] 在 org.apache.tools.ant.Target.performTasks(Target.java:411)
         [java] 在 org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
         [java] 在 org.apache.tools.ant.Project.executeTarget(Project.java:1368)
         [java] 在 org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
         [java] 在 org.apache.tools.ant.Project.executeTargets(Project.java:1251)
         [java] 在 org.apache.tools.ant.Main.runBuild(Main.java:809)
         [java] 在 org.apache.tools.ant.Main.startAnt(Main.java:217)
         [java] 在 org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
         [java] 在 org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
         [java] Caused by: java.io.IOException: Cannot run program "C:\Program Files\Java\jdk1.6.0_20\jre\bin\java.exe": CreateProcess error=87, 参数不正确
         [java] 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
         [java] 在 java.lang.Runtime.exec(Runtime.java:593)
         [java] 在 org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:862)

 
   <target name="stockquote" depends="compile">
            <java classname="samples.userguide.StockQuoteClient"
                  classpathref="javac.classpath" fork="true">
                <sysproperty key="symbol" value="${symbol}"/>
                <sysproperty key="mode"   value="${mode}"/>
                <sysproperty key="addurl" value="${addurl}"/>
                -----------------------------------------------

<target name="init">
        <mkdir dir="${class.dir}"/>
        <mkdir dir="./../../work/temp/sampleClient"/>
        <path id="javac.classpath">
            <pathelement path="${class.dir}"/>
            <pathelement path="../../lib"/>
            <fileset dir="../../repository/components/plugins">              
                <include name="*.jar"/>              
            </fileset>

            <fileset dir="../../lib">
                <include name="*.jar"/>
            </fileset>
            <fileset dir="../../lib/endorsed">
                <include name="*.jar"/>
            </fileset>
            <fileset dir="../../repository/components/extensions">
                <include name="*.jar"/>
            </fileset>
            <fileset dir="../../repository/components/lib">
                <include name="*.jar"/>
            </fileset>
        </path>
    </target>
4

1 回答 1

8

似乎您的 CLASSPATH 太长,Windows 无法应付。

谷歌“CreateProcess error=87,参数不正确”。另请参阅此答案

您将需要缩短您的类路径。尝试仅包含 StockQuoteClient 的实际依赖项而不包含其他任何内容,而不是所有“*.jar”条目。

于 2012-03-23T10:08:06.633 回答