通过其他程序(Mac OSX)的Bash脚本调用Ant



我有一个bash脚本,它调用"ant-v debug"。我可以在终端命令行提示符下完成这一切,没有任何问题。

我正试图让这个脚本通过IDE(CodeLite)运行,但在以这种方式运行时,我似乎缺少一些环境变量或其他设置。

Ant回应:

Error: Could not find or load main class org.apache.tools.ant.launch.Launcher

我的脚本如下:

#!/bin/bash
set -e
export ANDROID_SDK=/Android/sdk
export ANDROID_NDK=/Android/android-ndk-r9d
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_NDK:/work/bin
export ANT_HOME=/opt/ant
cd /work/TT/android-TT
ant -v debug
echo
echo Complete

我在命令提示符下运行了"env",根本看不到任何Java或"classpath"环境变量,所以我不知道缺少了什么。脚本肯定缺少某些类路径环境变量?

缺少什么?如何配置脚本的环境,以便ANT成功运行?

更新:这是包含--execdebug的输出

exec "$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="$ANT_HOME" -Dant.library.dir="$ANT_LIB" org.apache.tools.ant.launch.Launcher -cp "$CLASSPATH" "-v" "debug"
Error: Could not find or load main class org.apache.tools.ant.launch.Launcher

此外,如果我从CodeLite命令行运行,以下环境变量都是空的(除了我在脚本中设置的ANT_HOME)????

CLASSPATH=
LOCALCLASSPATH=
ANT_LIB=
ANT_HOME=/opt/ant

如果CLASSPATH为空,java怎么可能找到任何类?

多亏了"which"命令,我发现ant的正确路径是"/usr/local/bin/ant"。我现在使用从CodeLite调用的脚本中的路径调用ant,它很有效!

相关内容

  • 没有找到相关文章

最新更新