gpt4 book ai didi

java - 在 Eclipse 中从 Ant 构建文件执行 Bash.exe 时遇到问题

转载 作者:行者123 更新时间:2023-12-04 06:40:45 47 4
gpt4 key购买 nike

我已经在我的 Eclipse 项目中创建了一个 Ant 构建文件和一个关联的 Ant 构建器。构建器正在正确执行,但我似乎无法将正确的信息传递给 bash。我在 XP Professional SP3 机器上运行 cygwin。我知道该命令有效并已从 cygwin 终端对其进行了验证。我之前用这个命令创建了一个自定义构建器,所以我也知道它可以在 Eclipse 中工作。

这是我的构建 xml:

   <?xml version="1.0" encoding="UTF-8"?>
<project name="BlazeLibrary.makejar" default="makejar" basedir=".">
<property name="bash" location="e:\cygwin\bin\bash.exe" />
<property name="workingdir" location="e:\cygwin\bin" />
<property name="cmdline" value="--login -c \&quot;cd /cygdrive/c/dev/projects/droid/NDKTestApp &amp;&amp; /cygdrive/c/dev/tools/droid/android-ndk-r4b/ndk-build&quot;" />
<target name="nativeBuild" description="Build the native binaries using the Android NDK">
<exec dir="${workingdir}" executable="${bash}">
<arg value="${cmdline}" />
</exec>
</target>
</project>

任务运行良好,但输出 I 表明命令行参数不正确。即使它们完全按照应有的方式列出(并通过从 cmd 提示符运行以及前面提到的自定义构建器进行验证)。

这是错误消息的相关部分(其余部分只是吐槽帮助,与此问题无关):
nativeBuild:
[exec] /usr/bin/bash: --login -c "cd /cygdrive/c/dev/projects/droid/NDKTestApp && /cygdrive/c/dev/tools/droid/android-ndk-r4b/ndk-build": invalid option
[exec] Usage: /usr/bin/bash [GNU long option] [option] ... blah blah blah

我将是第一个承认我是 Ant 菜鸟的人,所以我可能会遗漏一些非常明显的东西。我已经搜索过,但没有什么能让我真正跳出来,而且任务似乎运行正确,只是命令行有些奇怪。提前感谢您的任何帮助。

最佳答案

眼前的问题是${cmdline}属性作为单个参数传递给 bash - 因此非常长的“无效选项”。

您可以将命令作为 arg line 传递反而:

<exec dir="${workingdir}" executable="${bash}">
<arg line="${cmdline}" />
</exec>

或者将其分解为单独的 value s。请注意,您不需要 -c 周围的引号。 arg 在这种情况下:
<property name="cmdline" value="cd /cygdrive/ ..etc.. ndk-build" />

<exec dir="${workingdir}" executable="${bash}">
<arg value="--login" />
<arg value="-c" />
<arg value="${cmdline}" />
</exec>

更多 here .

关于java - 在 Eclipse 中从 Ant 构建文件执行 Bash.exe 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4279931/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com