2014-04-17 159 views
7

我在Ubuntu上很新,在終端某一時刻我運行:設置JAVA_HOME環境變量在Ubuntu

mortar local:illustrate pigscripts/retail-recsys.pig purchase_input -f params/retail.params 

,但我有這個以下錯誤:

A suitable java installation could not be found. If you already have java installed
please set your JAVA_HOME environment variable before continuing. Otherwise, a suitable java installation will need to be added to your local system.

Installing Java

On OSX run javac from the command line. This will intiate the installation. For Linux systems please consult the documentation on your relevant package manager.

但我很確定我有Java,所以請如何設置我的JAVA_HOME環境變量?

+1

我做了一些關於Mortar的移植和[我發現這個文檔頁面](http://help.mortardata.com/data_apps/recommendation_engine/install_mortar)。我敢打賭,這就是您在運行/安裝時想用來導出JAVA_HOME的內容。 – Makoto

回答

0

將行​​放置在家庭目錄的.profile文件中。請注意,您必須替換xxx。您可能需要註銷並再次正常登錄

0

您可以在

的〜/ .bashrc

與出口設置JAVA_HOME =路徑/ usr/lib目錄/ JVM/Java的版本

但是你可按照來自here的指示進行全面指導。

+0

我將它設置在.bashrc中,但是我必須重新啓動嗎?它不會生效。 –

2
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

在您的~/.bashrc文件中。

如果你想提供給所有用戶,並在系統啓動這個環境變量,那麼你可以添加以下/etc/profile.d/java.sh(如果需要創建它):

export JDK_HOME=/usr/lib/jvm/java-7-oracle 
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

然後在終端運行:

sudo chmod +x /etc/profile.d/java.sh 
source /etc/profile.d/java.sh 
+0

JDK_HOME –

0

你可以在終端中鍵入java,如果它不工作意味着你沒有安裝java.if它的工作原理,在terminal.if類型中的javac劑量不工作,你應該設置Java環境變量,如果它工作,你的程序可能有問題。

15

首先,您需要決定使用哪個Java版本?不用擔心,你可以選擇任何你有 -

update-java-alternatives -l 

一個「易」解決方案是增加這「$ HOME/.bashrc中」,

export JAVA_HOME=$(update-java-alternatives -l | head -n 1 | cut -f3 -d' ') 

這採先安裝JDK,並採取這是JAVA_HOME(第三場) - 我的系統這是

/usr/lib/jvm/java-1.7.0-openjdk-amd64 
+0

有什麼意義?這只是一個臨時解決方案,並且在重新引導後會被清除。 –

+1

@IgorGanapolsky不,如果你將它添加到「.bashrc」,它不會。 –

+0

在Ubuntu 14.04上,當我通過apt安裝jdk時,創建了符號鏈接/ usr/lib/jvm/default-java。我用這個用於JAVA_HOME環境變量。 – RobotNerd

4

最簡單的方法來設置環境變量上與出口:

$ export JAVA_HOME="/usr/bin" 

這將暫時設置所需的變量。昱歐可以檢查它是否與設置:

$ echo $JAVA_HOME 

$ printenv 

如果螞蟻更持久的解決方案,追加 '出口JAVA_HOME = 「/ USR/BIN」' 到.bashrc或者.bash_profile文件文件。

要檢查是否正確安裝的Java:

$ which java 
    $ which javac 

你應該得到類似的輸出:

/usr/bin/java 
+1

爲什麼/ usr/bin/java?如果我從Oracle下載jdk到另一個目錄會怎麼樣? –

+0

那麼,這只是一個具體的例子:) – PovilasB

+0

這是最好的答案,如果你打算使用多個版本的Java。這允許你使用update-alternatives來設置你的java版本,並且它會一直工作。 – loctrice

0

對於JAVA_HOME指向積極的JDK,添加到您的~/.bashrc

export JAVA_HOME=$(update-alternatives --query javac | sed -n -e 's/Best: *\(.*\)\/bin\/javac/\1/p') 

它將動態設置$JAVA_HOME轉換爲由update-alternatives所選的JDK。