[英]Running Ant with JDK 1.6 on Mac OS X
我在使用Mac OS X上的JDK 1.6運行Ant時遇到問題。即使在OS X的Java Preference中將Java應用程序版本設置為Java SE 6,在終端中執行java -version
也會顯示java version "1.6.0_07"
,Ant仍然似乎使用JDK 1.5來使用JDK 1.5,因為它在編譯我的代碼時沒有看到JDK 1.6類。
我知道Ant依賴於JAVA_HOME
環境變量來指定要使用的JDK。 但是,我不太明白如何在Mac OS X上設置此變量。
因此,我的問題是如何在Mac OS X上使用JDK 1.6運行Ant。如果正確的方法仍然是設置JAVA_HOME
環境變量,那么如何在OS X上設置變量。
JAVA_HOME環境變量在主目錄的.profile文件中設置。 (/Users/ejel/.profile?)編輯它並將其設置為您想要的結果。 例如:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
從這一點開始,每次打開一個新的終端窗口時,它都會將JAVA_HOME設置為這個新值。 任何現有的打開窗口都不會改變它。
如果您真的對將其置於配置文件中感到駭然,或者如果它與其他軟件沖突,則可以始終在終端中手動運行export語句,或者進入在開始之前運行一次的腳本(例如:setj6ev.sh)運行螞蟻任務。
我添加了這條線
export JAVA_HOME=`/usr/libexec/java_home`
對於我的.zshrc文件,它似乎可以做到這一點(.bash_profile或者如果你使用bash的話)。
Ted,使用Java Preferences應用程序不會更改/System/Library/Frameworks/JavaVM.framework/Versions中的CurrentJDK符號鏈接,如果未設置JAVA_HOME環境變量,Ant將使用該符號鏈接。 因此,您可以手動更改該符號鏈接或設置JAVA_HOME環境變量,但如果您不這樣做,則Ant將不使用正確的JDK。
您可以通過在build.xml文件中發出<echo message =“$ {ant.java.version}”/>來查看Ant正在使用的jdk的版本。
我嘗試了一切,只有一件事適合我:取消鏈接CurrentJDK,並鏈接到1.6:
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo unlink CurrentJDK
sudo ln -sF "1.6" CurrentJDK
最后我得到:
java -version
java version "1.6.0_22"
我希望這有幫助。
在.profile / .bashrc / .zshrc中明確設置JAVA_HOME變量實際上並不是在mac上執行它的推薦方法。 有些程序我已經看到了一個明確設置JAVA_HOME到特定版本(例如,帶有一些彈簧資源的grails 1.1)。
設置要使用的Java版本的正確方法是使用/ Application / Utilities / Java Preferences.app應用程序。
在那里,您將要使用的java版本拖到頂部。 這將為所有應用程序啟用該版本(包括從命令行運行的應用程序和通過GUI進程啟動的應用程序)。
您可以通過從命令行運行此測試來測試當前版本:
java -version
我實際上並不喜歡mac處理整個java符號鏈接目錄和文件集的方式。 這並不明顯,人們常常搞砸了。
有關更多詳細信息,請參閱Apple開發者頁面 。
您可能需要打開一個新的命令提示符實例,以便shell可以獲取對環境變量的任何更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.