我刚拿起最新版本的Android SDK并开始尝试使用它。不像其他几乎所有人都提出这个问题,我正在运行Linux,即Linux Mint 13.我正在尝试使用ant编译Hello World程序,通过
安装sudo apt-get install ant
并在项目文件夹中运行:
ant debug
然而,它完全无法编译,最终吐出与设置JAVA_HOME
有关的错误。我相应地修改了~/.bashrc
文件并重新启动,但我仍然收到错误:
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-7-openjdk-amd64/jre"
Total time: 1 second
jamie@jamie-ThinkPad-E525 ~/Downloads/adt-bundle-linux/sdk/tools/projects/new $ echo $JAVA_HOME
/usr/java/jdk1.7.0_05/
正如你所看到的,它正在通过牙齿说谎。
我发现了很多关于这个问题的引用,但是大多数人都错误地设置了它们的JAVA_HOME,或者将它设置为JRE。显然,我没有做过。
我还修改了项目文件夹的ant.properties
文件,添加了一行
java.home=/usr/java/jdk1.7.0_05/
无济于事。
还有其他人经历过/解决过这个问题,还是有任何想法?感谢。
答案 0 :(得分:5)
ant
说实话并且未设置环境变量的可能性很大。可能性是:
无论如何,您可以通过在shell中运行export
来运行ant
命令...并查看是否列出JAVA_HOME
变量来验证这一点。
提示:
1)这是错误的:
JAVA_HOME=/usr/java/jdk1.7.0_05/
只创建一个本地shell变量,并且本地shell变量不会传递给子进程(如ant
命令)。它应该是:
export JAVA_HOME=/usr/java/jdk1.7.0_05/
2)尝试运行:
export JAVA_HOME=/usr/java/jdk1.7.0_05/
ant
3)向ant.properties添加java.home=/usr/java/jdk1.7.0_05/
无济于事。 Ant期望在环境变量中进行设置。
(好吧,你是在开玩笑。但是很多人面临故障排除问题采取了类似的非生产性方法;例如,假设每个棘手的Java问题都证明编译器/语言/运行时已被破坏.IMO - 它是值得提醒人们,这种想法可能非常无益......)
答案 1 :(得分:0)
尝试:
$ ant -diagnostics | grep java\\.home
如果不符合您的期望,那么
$ JAVA_HOME=/path/to/jdk ant -diagnostics | grep java\\.home
答案 2 :(得分:0)
我有一台带有ant 1.9.1的服务器。它需要一个环境变量ANT_RESPECT_JAVA_HOME设置,否则它将公然忽略JAVA_HOME环境变量。在使用ant 1.9.6的另一台服务器上似乎并非如此。
因此,根据您的蚂蚁版本,您可能需要添加
export ANT_RESPECT_JAVA_HOME=true
除了
export JAVA_HOME=/usr/java/jdk1.7.0_05/
希望这可以帮助别人,因为它花了我太长时间才发现......