我有一个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,它很有效!