[英]Ant unable to find javac, JAVA_HOME won't set on Ubuntu
我在我的Ubuntu 10.04 i386服務器(無頭)上有一個名為Hello的Android項目。 它包含Android項目文件夾應具有的所有內容。 我首先在使用此synax的Project文件夾中使用bash構建項目:
./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 / environment文件中
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
也沒有解決問題 - 我得到了同樣的錯誤。 我沒做什么改變了Ubunut仍然認為/usr/lib/jvm/java-6-openjdk/jre
是JAVA_HOME的事實。 出了什么問題? 我已經在這里工作了太多時間。
你安裝了JDK嗎?
安裝Ubuntu時,只安裝JRE作為默認軟件包的一部分。 不幸的是,Ubuntu的軟件包管理將目錄命名為JRE與JDK一起安裝。 即使JDK不存在,該目錄也被命名為java-6-openjdk
。
請執行下列操作:
sudo apt-get install openjdk-6-jdk
它將JDK安裝在同一目錄中。
---注意到輸出中的一個小項目后更新---
您已將JAVA_HOME
設置為Java運行時環境的正確位置,這非常不允許您運行Java程序, 但不能開發它們 。
將您的JAVA_HOME
縮短為/usr/lib/jvm/java-6-openjdk
(注意刪除尾隨jre
)。 之后,您的Ant包裝器/編譯器檢測代碼不會混淆,因為它將指向Java開發環境的主頁,而不是嵌入的相關Java運行時環境 。
提供嵌入式Java運行時環境以確保您可以僅針對核心(未包括的編譯器工具)Java產品進行測試。
---原帖如下---
查找命令javac
與JAVA_HOME
幾乎沒有關系, javac
通常位於JAVA_HOME
下的子目錄中
您需要做的是修改PATH
環境變量以包含Java可執行文件所在的目錄。 通常這樣做是這樣的
PATH=${PATH}:${JAVA_HOME}/bin
export PATH
但根據您的設置,可能會略有不同。 如果你這樣做
ls ${JAVA_HOME}/bin
並且您看到一個javac可執行文件,那么路徑變量的上述修改將無需任何更改就可以工作。
正如Edwin Buck所說,在/ usr / bin /目錄中檢查$ PATH是否有/ etc / alternatives / java的軟鏈接。 在附加的JAVA_HOME變量之前讀取它們。
那是我的問題:
ls -al /usr/bin/j*
lrwxrwxrwx 1 root root 22 2012-05-07 13:26 /usr/bin/java -> /etc/alternatives/java
lrwxrwxrwx 1 root root 25 2011-05-12 19:45 /usr/bin/java_vm -> /etc/alternatives/java_vm
lrwxrwxrwx 1 root root 24 2011-05-01 05:22 /usr/bin/javaws -> /etc/alternatives/javaws
lrwxrwxrwx 1 root root 26 2011-05-12 19:45 /usr/bin/jcontrol -> /etc/alternatives/jcontrol
lrwxrwxrwx 1 root root 23 2011-04-26 02:24 /usr/bin/jexec -> /etc/alternatives/jexec
更改JAVA_HOME和PATH是不夠的。
安裝所需的Java JDK版本(Java DEVELOPMENT Kit,而不僅僅是Java Runtime Environment JRE)后,使用sudo update-alternatives --config java
更改首選版本。 如果你在Ubuntu上,你可能已經安裝了1.6和1.7,並且在PPA中可以使用1.8(盡管我找不到1.8的PPA並不老)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.