
我一直在努力讓應用程式在 OS X Mavericks 中運行。我終於能夠透過鑽取 .app 套件並直接執行 shell 腳本來運行它。看來需要設定JAVA_HOME。所以我將它設定在 shell 的 .profile 中,一切正常。
但是,如果我只想單擊擴充座中的圖標,它就不會運行。我的猜測是這是因為 JAVA_HOME 沒有全域設定。由於我沒有直接從 shell 運行應用程序,因此 OS X 不知道 JAVA_HOME 是什麼。它只是一直在尋找。
在先前版本的 OS X 中,似乎可以透過簡單地將 GUI 應用程式新增至 /etc/launchd.conf 來設定環境變數。 Mavericks 中似乎不存在此檔案。如何設定適用於 Mavericks 中 GUI 應用程式的全域環境變數?
答案1
/etc/launchd.conf
預設從未存在過,但它在 10.9 中仍然有效。
- 運行例如
sudo nano /etc/launchd.conf
。 - 新增一行,如
setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
. (我不知道JAVA_HOME
實際上應該設定什麼。) - 重新啟動或運行
launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
並重新啟動進程。
launchctl export
列印由使用者 launchd 進程導出的變數和sudo launchctl export
列印由根 launchd 進程導出的變數。
此方法也可用於設定預設路徑。例如,我已將此行新增至/etc/launchd.conf
:
setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
(我使用/Users/lauri/bin
而不是~/bin
因為~/bin
適用/var/root/bin
於以 root 身份運行的程式。)
答案2
自 Mac OS 10.10 以來,Launchd.conf 不再工作/可用。
現在實現此目的的正確方法是透過在啟動時載入的 LaunchAgent 腳本。由於這些腳本非常乏味(個人意見:),我更喜歡使用 .bash_profile 並自動建立/更新這些腳本。
試試這個 SO 答案,以更簡單的方法從 .bash_profile 實現此目的。希望這能幫助您節省我(再次)為我的新 Mac M2 找出答案所花費的幾個小時。