2012-06-13 34 views
6

當我在Unbuntu上構建Jikes RVM時,出現此錯誤。任何想法?」錯誤:JAVA_HOME未正確定義。「在構建Jikes rvm

 
bin/buildit localhost production 
---> Config: production 
/bin/bash --login -c '/bin/bash --login -c " cd /home/jack/Programs/jikesrvm-3.1.2 && export JAVA_HOME=/opt/jdk1.6.0 && ant very-clean -Dhost.name=ia32-linux && ant check-components-properties -Dhost.name=ia32-linux -Dtarget.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache && ant -Dtarget.name=ia32-linux -Dconfig.name=production -Dhg.revision= -Dhost.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache "' 
Error: JAVA_HOME is not defined correctly. 
    We cannot execute /opt/jdk1.6.0/bin/java 
Wed Jun 13 12:23:37 EDT 2012 
===================== Summary ===================== 
Local : /home/jack/Programs/jikesrvm-3.1.2 
Build : ubuntu:/home/jack/Programs/jikesrvm-3.1.2 
Target : ubuntu:/home/jack/Programs/jikesrvm-3.1.2 
Start : Wed Jun 13 12:23:37 EDT 2012 
Config : production [FAILED Wed Jun 13 12:23:37 EDT 2012] 
=================================================== 

OS:

Linux ubuntu 2.6.32-24-generiC#39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux

環境變量: PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun-1.6.0.22/bin

JAVA_HOME

/usr/lib/jvm/java-6-sun-1.6.0.22

我在檢查目錄,它的工作原理。 無論我如何更改環境變量,錯誤都不斷抱怨「我們無法執行/opt/jdk1.6.0/bin/java」。看來我沒有修改正確的「職位」。

任何線索?

謝謝!

回答

7

運行以下命令:

find . -exec grep "jdk1.6.0" {} \; 

要找出哪些文件被設置JAVA_HOME到該路徑。

+0

嗨,洛基,你的命令,我得到這個:global.javahome.ia32-linux =/opt/jdk1.6.0 global.javahome.x86_64-linux =/opt/jdk1.6.0但是它們是什麼?我怎樣才能改變它們?謝謝! – JackWM

+0

對不起,我猜你應該添加-l選項,以便您可以在find中查看它定義的文件。 -exec grep -l「jdk1.6.0」{} \;那將打印文件名,然後編輯該文件。 –

+0

我找到他們。它們位於/bin/buildit.base_config中。將它們修改爲真實的JAVA_HOME後,錯誤消失。謝謝! – JackWM

0

這是JRE,但不是JDK。安裝JDK並使JAVA_HOME指向它。

+0

你能舉一個例子說明如何做到這一點嗎? –

+0

你的意思是如何安裝JDK的例子?只需從存儲庫中取出它。 JAVA_HOME可以作爲變量導出到shell中。 –

3

當您構建jikes時,您可以使用ant或使用您正在使用的命令來構建它。 如果JAVA_HOME問題引起的故障使用

bin/buildit localhost production -j"path to your jvm directory" 

- 這是出現在「/usr/bin/jvm」。

另一種方法:有bin/buildit.base_config,其中特別提到了JAVA_HOME的路徑。因此,「# Default JAVA_HOME values」下,您可以修改相應的位置,例如,

global.javahome.ppc32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.ppc64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.ia32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.x86_64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 

你可以選擇你要使用的。如果不熟悉您的架構,請修改所有內容,現在可以構建而不必擔心顯式提及的Java路徑。 欲瞭解更多詳細信息來檢查 this blog

我也寫了關於如何可以start to fiddle with Jikes

+0

@jackWM:目前在使用openjdk 7構建它時存在bug,並且它在版本6中工作正常,所以使用版本6。 – Rorschach

-1

你可能會得到這個錯誤的小文章,由於幾個原因。要快速修復此問題,請按照以下步驟操作:

首先找到java位置。爲了讓您安裝了Java平臺的列表,從終端運行下面​​的命令:

$ sudo update-alternatives --config java 

現在設置JAVA_HOME和PATH,

$ export JAVA_HOME=<java_home> 

$ export PATH=$JAVA_HOME/jre/bin:$PATH 

創建符號鏈接

$ sudo ln -s <java_home>/jre <java_symlink_path> 

當我們以您的案例爲例:

$ sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.22/jre /opt/jdk1.6.0 

以上命令將創建系統嘗試在您的問題中查找的符號鏈接位置。

最後嘗試你的應用程序。

相關問題