簡體   English   中英

為什么我無法在MAC OS X 10.11上看到JAVA_HOME路徑?

[英]Why I am not able to see the JAVA_HOME path on my MAC OS X 10.11?

我試圖在我的MAC OS X 10.11(El Capitan)上運行JAVA應用程序。

我使用此鏈接在我的MAC OS X 10.11上設置JAVA_HOME。

我能夠運行以下命令:
java -version
哪個java

然而,當我去MAC上的終端應用程序並輸入echo $ JAVA_HOME時,我什么也看不見。 這是為什么? 這是否意味着我的JAVA_HOME設置不正確?

在哪里定義它

好吧,首先,我們要弄清楚在何處設置JAVA_HOME

簡化后,您可以在兩個文件中定義它: ~/.bashrc~/bash_profile 默認情況下 ,前者是針對所謂的“交互式非登錄shell”執行的,而后者則用於“登錄shell”。 “登錄shell”正是您所期望的:通過命令行登錄后啟動的shell。 “交互式非登錄shell”是例如從GUI內啟動的shell。 因此,根據這一點,我們應該將我們的導出語句放入~/.bashrc

附注:當OS X的“終端”應用程序讀取所提到的兩個文件時,這不是默認行為,因此不應該這樣對待。 這就是為什么我寫了一個解釋。

做什么定義

您需要在~/.bashrc文件中導出JAVA_HOME,以便每次打開shell時都會設置該變量。

在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
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

這是為Java 8 ....原始鏈接,我發現它在這里安裝Java在Mac OS X 10.10 Yosemite和10.11 El Capitan

但接受的答案也有效。 更新后只需要注意路徑的變化。

您將在OSX中找到有關如何設置JAVA_HOME的許多答案,但如果根本不需要設置JAVA_HOME,則很難找到問題的答案。

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

在OSX上,設置JAVA_HOME環境變量是可選的。 JRE和JDK安裝程序不提供JAVA_HOME設置; 所以沒有設置JAVA_HOME是完全沒問題的。

如果你想出於某種原因使用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的正確目錄。對我來說,它是“/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home” 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM