2012-03-29 164 views
1

我有Linux CentOS版本5.5,我試圖安裝sun-java6-jdk。

我發現,如果我執行下面的命令,我有:

java -version 
java version "1.6.0_21" 
Java(TM) SE Runtime Environment (build 1.6.0_21-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode) 

如果我這樣做:

echo $JAVA_HOME 
/usr/java/default 

當我嘗試運行腳本,我有錯誤: 錯誤:未設置JAVA_HOME。

如何在$ .bashrc文件的$ JAVA_HOME中找到並設置正確的值?

感謝,提前

+0

如何和你在哪裏運行此腳本? – Kevin 2012-03-29 13:29:21

+0

你確定這個變量已經被shell導出了嗎?如果不是,那麼當你嘗試「回聲」時它會顯示出來,但程序仍然不會看到它。驗證運行'env | grep JAVA_HOME' – Patrick 2012-03-29 13:37:26

+0

我以超級用戶(sudo)的身份運行腳本,執行了以下命令,env | grep JAVA_HOME JAVA_HOME =/usr/java/jdk1.6.0_21 – programmer 2012-03-29 20:14:48

回答

3

確保您的JAVA_HOME變量被導出到隨後執行的命令的環境中。

在你的.bashrc文件提出:

export JAVA_HOME=/usr/java/default 
+0

最後,我在conf/hadoop-env.sh文件中添加了--export JAVA_HOME =/usr/java/default--並且它工作正常。現在正在工作 – programmer 2012-03-30 20:51:05

1

要查找$ JAVA_HOME值,做

ls -l `which java` 

,並使用/ bin/java的 哪個腳本顯示 「JAVA_HOME未設置」 的父目錄?如果它是tomcat的啓動腳本,那麼最好在該腳本中設置$ JAVA_HOME。

+2

您可以使用'type - 這是一個腳本.sh爲Hadoop,我需要啓動名稱節點,但是它是一個bash內建的:'JAVA_HOME = $(dirname「$(dirname」$(type -p java)「)」))' – 2012-03-29 14:08:39

+0

我不能 – programmer 2012-03-29 20:11:51

+0

另外,我執行命令ls -l'java'和輸出是:/ usr/bin/java - > /usr/java/jre1.6.0_21/bin/java – programmer 2012-03-29 20:13:26