代码之家  ›  专栏  ›  技术社区  ›  Mark Lakewood

在Ant脚本中将命令行参数传递给JAR

  •  8
  • Mark Lakewood  · 技术社区  · 16 年前

    我有一个可执行文件 JAR 文件我有一个 Ant 编译并创建此JAR文件的构建脚本。我也希望有一个任务来运行JAR文件,但我有一个命令行参数需要传递给JAR。这是一个配置文件。运行目标低于

    <target name="run">
        <java jar="build/jar/ShoutGen.jar" fork="true"/>
        <arg line="/home/munderwo/workspace/ShoutGen-Java/ShoutGen.conf"/>
    </target>
    

    Buildfile: /home/munderwo/workspace/ShoutGen-Java/build.xml
    run:
         [java] No config file passed as an argument. Please pass a configuration file
         [java] Java Result: 16
    
    BUILD FAILED
    /home/munderwo/workspace/ShoutGen-Java/build.xml:24: Problem: failed to create task or type arg
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any <presetdef>/<macrodef> declarations have taken place.
    

    Java的错误输出是我的编码错误,意思是“您没有将配置文件作为参数传递”,它支持ant错误“问题:无法创建任务或类型arg”。

    那么,如何从Ant内部将参数传递给已执行的JAR文件呢?这是你不应该做的吗?

    3 回复  |  直到 16 年前
        1
  •  16
  •   Asaph    16 年前

    这个 <arg> 标记应该是 <java>

    <target name="run">
        <java jar="build/jar/ShoutGen.jar" fork="true">
            <arg line="/home/munderwo/workspace/ShoutGen-Java/ShoutGen.conf"/>
        </java>
    </target>
    

    在你的问题中 <arg> <爪哇> java 指挥部。

        2
  •  6
  •   Ajay    16 年前

    arg语句未正确嵌套在java任务中。这是必须的

    <java jar="...">
      <arg line="..." />
    </java>
    
        3
  •  -3
  •   Dumpcats    10 年前

    public static void main(String[] args) {
        try {
            String one = args[0];
            String two = args[1];
        }
        catch (ArrayIndexOutOfBoundsException e){
            System.out.println("ArrayIndexOutOfBoundsException caught");
        }
        finally {
    
        }
    }