更改java版本(Mac)

时间:2013-09-27 08:08:31

标签: java macos java-home

我的计算机上有两个java版本:

/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

1.6.0设置为默认值。如何让我的java程序运行1.7?

试图补充:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home

到我的 .zshrc 文件。但这似乎只改变了我的终端java命令的路径。

还试图像这样更改HOME符号链接:

cd /Library/Java
mv Home Home-1.6
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/ Home

这根本没有效果。

还试过java转换软件: http://www.guigarage.com/2013/02/change-java-version-on-mac-os/ 但没有效果。

任何想法如何通过点击它们来启动1.7版本的.app和.jar文件等java程序?

3 个答案:

答案 0 :(得分:9)

我相信OS X(至少10.8)使用以下路径:

  • JRE:/System/Library/Frameworks/JavaVM.framework/Versions/Current
  • JDK:/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

这些是符号链接,您可以更新它们以指向1.7安装。

您可以相当轻松地验证这一点:

a)运行which java以检查正在执行的java可执行文件。从理论上讲,这应该是/usr/bin/java

b)在你的java可执行文件上运行ls -la,它应该告诉你它指向的位置(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java 在我的机器上。)

我认为这应该对您的.jar执行问题进行排序。如果您的Java应用程序包含在.app中,我认为它有点复杂:如果内存服务,则使用的java版本将取决于JavaApplicationStub使用的.app

答案 1 :(得分:1)

您始终可以在Mac或Linux上添加into your profile。只要创建如果不存在〜/ .profile文件,那么这一行:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home

这应该有效.zshrc和.bash_profile仅在终端窗口打开并profile when your graphical environment starts up时加载。

答案 2 :(得分:1)

$ edit ~/.profile

#Java 1.8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}


$ java -version

java version "1.8.0_20-ea"

以下是步骤:

http://ukitech.blogspot.com/2014/04/switching-version-of-java-on-mac.html