簡體   English   中英

Ant無法找到javac,JAVA_HOME也不會在Ubuntu上設置

[英]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產品進行測試。

---原帖如下---

查找命令javacJAVA_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM