我有一个可执行的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>
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做并从Eclipse中运行它时,我得到了
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.
Run Code Online (Sandbox Code Playgroud)
Java输出的错误是我的编码错误,意思是"你没有将配置文件作为参数传递",它支持"问题:创建任务或输入arg失败"的蚂蚁错误.
那么如何从Ant中将参数传递给已执行的JAR文件?这是你不应该做的事吗?
Asa*_*aph 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>
Run Code Online (Sandbox Code Playgroud)
在你的问题中<arg>是一个兄弟,<java>并且参数行永远不会传递给java命令.
您的arg语句未正确嵌套在java任务中.它需要
<java jar="...">
<arg line="..." />
</java>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13688 次 |
| 最近记录: |