Ant 无法找到 javac,JAVA_HOME无法在 Ubuntu 上设置

2022-09-01 00:27:35

我有一个名为Hello的Android项目在我的Ubuntu 10.04 i386服务器(无头)上。它包含Android项目文件夹应该具有的所有内容。我首先在bash中构建项目,同时在Project文件夹中使用以下symax:

./android create project --target 5 --name HelloCompile --path ../../Projects/Hello --activity HelloActivity --package com.code.Hello

然后我尝试用蚂蚁构建.apk,如下所示:

ant debug

我收到此错误:

BUILD FAILED
/home/myusername/www/sdk/tools/ant/main_rules.xml:384: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"

这让我非常困惑,因为在我跑步之前,我跑了:ant debug

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

我知道这是有效的,因为在bash shell返回:printenv

JAVA_HOME=/usr/lib/jvm/java-6-openjdk

为了解决这个问题,请将此行添加到我的 /etc/环境文件中

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

也没有解决问题 - 我得到同样的错误。我所做的一切都没有改变Ubunut仍然认为是JAVA_HOME的事实。哪里出错了?我已经在这里工作了太多个小时。/usr/lib/jvm/java-6-openjdk/jre


答案 1

是否安装了 JDK?

安装 Ubuntu 时,只有 JRE 作为默认包的一部分进行安装。不幸的是,Ubuntu的包管理命名目录就像JRE与JDK一起安装一样。即使 JDK 不存在,也会命名该目录。java-6-openjdk

请执行下列操作:

sudo apt-get install openjdk-6-jdk

它将在同一目录中安装 JDK。


答案 2

--- 在输出---中注意到一个小项目后更新

您已将 Web 运行时环境设置到正确的位置,这将不合时宜地允许您运行 Java 程序,但不允许开发它们JAVA_HOME

缩短您的到(注意删除尾随)。之后,您的Ant包装器/编译器检测代码不会混淆,因为它将指向Java开发环境的主页,而不是嵌入式的相关Java运行时环境JAVA_HOME/usr/lib/jvm/java-6-openjdkjre

提供嵌入式 Java 运行时环境是为了确保您只能针对核心(不包括编译器工具)Java 产品进行测试。

--- 原始帖子关注---

查找命令与超出此范围无关,这通常位于javacJAVA_HOMEjavacJAVA_HOME

您需要做的是修改环境变量以包含 Java 可执行文件所在的目录。通常,这是这样完成的PATH

PATH=${PATH}:${JAVA_HOME}/bin
export PATH

但根据您的设置,完成方式可能会略有不同。如果您这样做

ls ${JAVA_HOME}/bin

并且您看到一个javac可执行文件,那么对路径变量的上述修改将无需更改即可工作。