簡體   English   中英

在Mac OS X上使用JDK 1.6運行Ant

[英]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.

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