Ant构建执行cordova

时间:2013-10-03 11:24:42

标签: windows cordova ant

我为我的cordova项目创建了一个ant构建如下:

<project default="build">
    <target name="init-android">
        <exec executable="cordova">
            <arg value="platform"/>
            <arg value="add"/>
            <arg value="android"/>
        </exec>
        <exec executable="cordova">
            <arg value="build"/>
        </exec>
    </target>
</project>

但我收到了这个错误:

  

C:\ path_to_project \ build.xml:3:执行失败:java.io.IOException:   无法运行程序“cordova”:CreateProcess error = 2,系统不能   找到指定的文件           在java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)           在java.lang.Runtime.exec(Runtime.java:615)           在org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav)   a13CommandLauncher.java:41)

我可以在命令提示符下运行cordova命令,没有问题,我有:

  

JAVA_HOME = C:/ Program Files / Java / jdk1.7.0_10 /   ANT_HOME = C:\ Program Files \ Java \ apache-ant-1.9.2   NODEJS_HOME = C:\ Program Files \ nodejs

他们都在我的道路上。我不明白为什么它不起作用。请帮忙。感谢

1 个答案:

答案 0 :(得分:4)

通常在使用Java应用程序在Windows中启动程序时,我经常需要执行cmd.exe并将其传递给我实际想要运行的程序的完整路径。这允许系统环境变量等以您期望的方式设置。试试这个:

<project default="build">
    <target name="init-android">
        <exec executable="cmd.exe">
            <arg value="/C"/>
            <arg value="cordova"/>
            <arg value="platform"/>
            <arg value="add"/>
            <arg value="android"/>
        </exec>
        <exec executable="cmd.exe">
            <arg value="/C"/>
            <arg value="cordova"/>
            <arg value="build"/>
        </exec>
    </target>
</project>

如果仍然无效,请给出cordova的完整路径。如果您有一个已定义的环境变量,则该环境变量应该有效。