java - Maven,带有 OS X 的 JAVA_HOME

标签 java macos maven-2

试图让 Maven、Java 和 OS X 很好地协同工作——我已经在 Linux 和 Windows 机器上做过多次,没有问题。我假设我需要做的就是下载 Maven,设置我的环境变量,我会很好。所以这是我的 .bash_profile 中的一个片段...

export JAVA_HOME=/Library/Java/Home/  
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1  
export PATH=$PATH:$M2_HOME/bin

JAVA_HOME 设置是 Apple 建议在 this Q&A page 上使用的设置.然而,在启动终端并运行 mvn --version 后,输出如下...

Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400)  
Java version: 1.6.0_17  
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home  
Default locale: en_US, platform encoding: MacRoman  
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac"

知道为什么 Maven 忽略了我在 .bash_profile 中设置的 JAVA_HOME 吗?它会导致问题,因为在 Maven 使用的 JAVA_HOME 中找不到诸如 rt.jar 之类的东西。我可以通过在 Maven 正在使用的 home 中创建符号链接(symbolic link)和其他 hackery 来解决这个问题,但我宁愿让它正常工作,因为下次 Apple 推送 Java 更新时,这只会让我崩溃。感谢您的帮助...

最佳答案

问题是 JavaVm.framework 版本中的符号链接(symbolic link)“CurrentJDK”指向旧的 jdk,所以当我使用以下命令将 CurrentJDK 设置为最新版本 (1.7.0_45) 时,它起作用了

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK

引用: http://java.dzone.com/articles/installing-jdk-7-mac-os-x

关于java - Maven,带有 OS X 的 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2013346/

相关文章:

java - System.out.print() 之后的 nextInt()

java - 将 JTable 添加到 JTabbedPane 内的 JScrollPane

c - 在 Mac OS X 10.11 上,如果与 .cu 扩展名一起使用,nvcc 不喜欢复杂

java - 带有 Swing 的 JRuby : "The OSX menu"

java - 文件系统的 JNDI 服务提供者

java - 套接字通信中客户端输入之间的时间

c++ - CMAKE_OSX_DEPLOYMENT_TARGET 在 Yosemite 上自动设置为 '10.10'

maven-2 - maven-assembly-plugin 导致测试运行两次

java - 部署 Java 文件

maven-2 - Maven - 如何找到正确的 groupId/artifactId 以在 POM 中包含依赖项