2014-06-19 31 views
0

當我運行命令哪個Java獲得輸出的/ usr/bin中/ JAVA什麼是linux中的java安裝結構?

當我運行LL/USR/bin中/ JAVA獲得輸出/usr/lib/jvm/jre-1.7。 0-openjdk.x86_64/bin/java

在/ usr/lib/i中找到以下4kb大小的文件夾這些文件夾是什麼?

java-1.5.0-gcj-1.5.0.0 
java-1.7.0-openjdk-1.7.0.51.x86_64 
jre -> /etc/alternatives/jre 
jre-1.5.0 -> /etc/alternatives/jre_1.5.0 
jre-1.5.0-gcj -> java-1.5.0-gcj-1.5.0.0/jre 
jre-1.7.0 -> /etc/alternatives/jre_1.7.0 
jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.51.x86_64/jre 
jre-gcj -> /etc/alternatives/jre_gcj 
jre-openjdk -> /etc/alternatives/jre_openjdk 

在/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin我發現Java是Java文件? 當我想設置java_home應該使用哪個路徑? 什麼是興奮的差異netweem jdk和這些jvm文件夾?

+0

您可以檢查是否'在/ usr/bin中/ java'是一個符號鏈接'/ usr/lib中/ JVM/JRE-1.7.0-openjdk.x86_64 /斌/ java'?我想II是指通常的'ls -l'? – Eypros

+0

沒錯就是符號鏈接/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/和/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/是符號鏈接到/ usr/lib目錄/jvm/java-1.7.0-openjdk-1.7.0.51.x86_64/jre/正如你可以看到的那樣...所以這些是什麼......爲什麼我不能有簡單的/home/jdk1.7/bin文件夾,所以我可以很容易地設置java_home .. –

+0

爲什麼你需要一個特定的Java主文件夾嗎? – Eypros

回答

1

JDK包含其他工具,如JavaDoc中,JavaDB之外,javac的,......,而JRE只有那些需要運行Java程序(我認爲這是JRE)。

Linux系統支持多個安裝的Java版本,您可以使用update-alternatives程序之間切換。我不會推薦Java發行版的gcj版本,但您可能在Sun(Oracle)Java版本中遇到的問題最少。

+0

所以,當我想設置在Hadoop中或其他一些工具來JAVA_HOME我應該使用哪個軟件包這些JRE或下載單獨的JDK 1.7 –

+1

@sandy_ws:這取決於你想要達到的目標。如果您將'JAVA_HOME'設置爲'/ usr/lib/jre-1.7.0',那麼您可以使用'update-alternatives'切換使用的Java版本。如果你想使用特定的版本,將'JAVA_HOME'設置爲特定的Java版本可能更有意義。但是,當你安裝新版本的Java時,這將會中斷。包裝系統會告訴'update-alternatives'關於新版本,但它不會試圖找出你設置'JAVA_HOME'的所有地方。 –

+0

通常JDK是一個安全的選擇。例如,如果程序想使用'tools.jar'(例如腳本),最好使用JDK。如果它只適用於JRE,那麼選擇哪個並不重要。 –