2015-10-09 54 views
12

我想在我的MAC OS X 10.11(El Capitan)上運行一個JAVA應用程序。爲什麼我無法在MAC OS X 10.11上看到JAVA_HOME路徑?

我用 this link在我的MAC OS X 10.11上設置了JAVA_HOME。

我能夠運行以下命令:
Java的版本
的Java

但是當我去到終端應用程序在Mac和輸入echo $ JAVA_HOME,我什麼也看不見。 這是爲什麼? 這是否意味着我的JAVA_HOME設置不正確?

回答

31

在哪裏把它定義

好吧,首先,我們要明確其中設置JAVA_HOME

簡化後,您可以將其定義爲兩個文件:~/.bashrc~/bash_profile。通過默認前者是爲所謂的「交互式非登錄shell」執行的,而後者用於「登錄shell」。 「登錄shell」正是你期望的:一個通過命令行登錄後啓動的shell。例如,「交互式非登錄外殼」是從GUI內啓動的外殼。所以,據此,我們應該把我們的出口聲明放入~/.bashrc。注意:儘管OS X的「終端」應用程序讀取這兩個文件,但這不是默認行爲,因此不應該這樣處理。這就是爲什麼我寫了一個解釋。

什麼定義

你需要讓每一個外殼被打開時,該變量設置導出JAVA_HOME在~/.bashrc文件。

在OS X上,Java開發工具包和運行時環境在/Library/Java/JavaVirtualMachines/下存儲了很長一段時間。看看那裏。這是怎麼看我的機器:

/Library/Java/JavaVirtualMachines/ 
├── jdk1.7.0_45.jdk 
├── jdk1.8.0_20.jdk 
├── jdk1.8.0_25.jdk 
└── jdk1.8.0_51.jdk 

的子文件夾與此類似

jdk1.7.0_45.jdk/ 
└── Contents 
    ├── Home 
    ├── Info.plist 
    └── MacOS 

還有我們得到了它。所以,如果你想指向JDK 1.7.0_45,你把下面的語句到您的.bashrc

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home" 

要確保該Java版本正確的二進制文件調用,你還應該添加以下在上述聲明之後的某處:

export PATH=$JAVA_HOME/bin:$PATH 
+0

您沒有回答這裏提到的第一個問題。 –

+0

@PeterVerhas噢,我隱含地說:它不可用,因爲它沒有被導出到正確的dotfile文件中。要使環境變量可用,需要設置它;) –

+0

僅供參考 - 這對於高塞拉利昂不適用。我需要指定jdk1.8,並安裝了java 9。唯一的解決方案是刪除Java 9. – eimmer

0

如果您想使用jdk 1.6由於某種原因,Apple已停止支持。在更新Mac OS後,它將被刪除。您還可以通過此頁面獲取JDK 1.6:https://support.apple.com/kb/DL1572?locale=zh_CN

您安裝JDK 1.6,別忘了確認出口在〜/ .bash_profile中的系統變量$ JAVA_HOME正確的目錄等 對我來說,它是「/圖書館/的Java/JavaVirtualMachines/1.6.0.jdk /內容/首頁」。

0

關於如何在OSX中設置JAVA_HOME,你會找到很多答案,但是如果完全需要設置JAVA_HOME,很難找到問題的答案。

這是爲什麼?這是否意味着我的JAVA_HOME設置不正確?

在OSX上,設置JAVA_HOME環境變量是可選的。 JRE和JDK安裝程序不提供正在設置的JAVA_HOME;所以JAVA_HOME沒有被設置是非常好的。