【问题标题】:Apache ant - compile and run with build.xmlApache ant - 使用 build.xml 编译和运行
【发布时间】:2015-01-15 22:35:53
【问题描述】:

我想编译然后执行我的程序,给它两个输入参数。为什么它不起作用?

<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="MyProgram compile and run">

<target name="run" depends="compile"> 
    <classpath path="." />
    <exec executable="MyProgram">
        <arg value="80"/>
        <arg value="C:/"/>
    </exec> 
</target>

<target name="compile">
    <javac srcdir="." destdir="." />
</target>

</project>

【问题讨论】:

  • 类路径标记在那里无效。
  • 为什么不呢?我的构建文件与 MyProgram.java 位于同一文件夹中。还是位置不对?
  • 类路径用于java和javac任务,不能作为target的嵌套标签使用。
  • 不要将 source 和 destdir 设为同一个目录! 创建一个 build 某种目录并将其用作 destdir。跨度>

标签: xml apache ant build build.xml


【解决方案1】:

你到底想做什么?您正在编译一堆 Java 代码,然后使用exec 执行MyProgram。该文件名为MyProgram.exe 吗?或者,这是 Java 代码吗?

如果MyProgram 是您通过javac 编译的java 代码,您可能需要使用运行Java 运行时引擎的&lt;java&gt; 任务来执行编译后的*.class 文件。

我假设您有一个名为 MyProgram.java 的 Java 文件,并且您想要编译并执行 MyProgram.class。

<project name="MyProgram" default="run" basedir=".">   <!-- No spaces in project name! -->

    <target name="clean">
        <delete dir="${basedir}/dest"/>
    </target>

    <!-- Put the Java Source and Destination under their own directories -->
    <target name="compile">
        <mkdir dir="${basedir}/dest"/>
        <javac srcdir="${basedir}/src"
            destdir="${basedir}/dest"/>
    </target>

    <target name="run">
        <!-- Assuming file called dest/MyProgram.class was built -->
        <java classname="MyProgram"
            classpath="${basedir}/dest">
            <arg value="80"/>
            <arg value="C:"/>
       </java>
    </target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    相关资源
    最近更新 更多