2012-05-30 166 views
11

我試圖mvn install和得到這個消息:無法找到javac編譯

Compilation failure 
Unable to locate the Javac Compiler in: 
    /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar 
Please ensure you are using JDK 1.4 or above and 
not a JRE (the com.sun.tools.javac.Main class is required). 
In most cases you can change the location of your Java 
installation by setting the JAVA_HOME environment variable. 

那麼,有一個開放的JDK,我還下載了一個又一個。我想指出JAVA_HOME到兩個,現在它被設置:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03 
export JAVA_HOME 
PATH=$PATH:$JAVA_HOME/bin 
export PATH 

我也試着選擇那些sudo update-alternatives --config java開之一,但與它不同的JDK版本得到了同樣的錯誤。

我該如何解決這個問題?提前致謝。

+0

「javac -version」和「which javac」的輸出是什麼? – Korgen

+1

@Korgen在「javac -version」之後,我得到了「程序'javac'可以在下面的包中找到」,並且建議安裝其中的一個(當然,那裏已經安裝了一個開放的jdk)。 –

+1

您是否從此登錄過? – dbalakirev

回答

18

它似乎像你的路徑沒有正確拾取......「echo $ PATH」的輸出包含javac駐留的目錄嗎? 我建議如下:

開放的終端,做一個:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_03 
export PATH=$PATH:$JAVA_HOME/bin 
javac -version 
which javac 

除非javac -version仍然無法正常工作創建在/ usr/local/bin目錄符號鏈接指向你的javac二進制:

cd /usr/local/bin 
ln -s /usr/lib/jvm/jdk1.7.0_03/bin/javac javac 

這應該讓您的運行... 的另一種方法是嘗試通過你的軟件包管理系統設置Java(例如:「apt-get的安裝java」或某事類似)

+0

謝謝,現在我得到的javac版本,但我仍然得到編譯失敗 –

+1

你是否執行maven從相同終端,你在哪裏輸入上述行? mvn錯誤消息是否仍然指向openjdk目錄或/usr/lib/jvm/jdk1.7.0_03? – Korgen

+0

查看問題的評論,問題似乎已解決,但無論如何,我會盡快標記此答案。 –

0

我在運行Jenkins的maven構建時在ubuntu機器上遇到過類似的錯誤。如果 '的javac -version' 的輸出提示下面的消息:

「方案 '的javac' 可以在下面的包中找到: 默認-JDK ECJ GCJ -5- JDK 的openjdk -8- JDK-無頭 GCJ-4.8-jdk的 的gcj-4.9-jdk的 的OpenJDK-9-JDK-無頭 嘗試:易於安裝「

然後你就可以安裝 」的OpenJDK-8-JDK-無頭「 使用:

容易安裝openjdk-8-jdk-headless

這解決了我的問題,maven構建通過了。

相關問題