Mac OSX 中JDK设置问题

版权声明:本文为博主原创文章,转载请注明出处,谢谢 https://blog.csdn.net/supercooly/article/details/52252126

OSX 中JAVA_HOME设定

一、软件环境

OSX EI Capitan 10.11.6

二、指定Java运行环境

1. Global 指定应用程序的JDK/JRE

参考文章:https://support.apple.com/en-us/HT202643
在苹果官方支持中,弄了好久终于搞明白了,Application启动的时候是加载的那个Java了,位置如下:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

① 删除不想用的Java Plugin

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled 
sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled
只是移动到禁用目录,并没有真正删除,随时可以恢复。将新安的备份到另一个目录,或者重命名。恢复命令:
sudo mv /Library/Internet\ Plug-Ins/disabled/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins

② 重新设定Java Plugin
下载Oracle官网的JDK7或者JDK8,安装之后,就会在重新生成一个
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
注意:如果已经安装了8,没有执行①的话,是不会覆盖掉JDK8的

③ 启用JDK6.

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 

# 重新启动Java SE 6 Web Start,输入下面的命令
sudo ln -sf /System/Library/Frameworks/JavaVM.framework/Commands/javaws /usr/bin/javaws

注:OSX EI Capitan 10.11.6,已经没有了。

2. Eclipse指定vm

在windows下和许多教程下,都是说改/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini文件中,加入 -vm参数,然并卵,根本没起作用,不是插入到最后,还有可能报错。

在OSX下,需要修改/Applications/Eclipse.app/Contents/Info.list文件,打开文件你会看到
<key>Eclipse</key>
<array>
<!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
or add a VM found via $/usr/libexec/java_home -V
<string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string>
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/java</string>
-->
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java</string>
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
<string>-showlocation</string>
</array>

    看注释部分,写的很清楚,如何配置-vm参数,这样Eclipse就可以按照自己指定的jdk运行了,而忽略系统默认的jdk。

3. VisualVM

同样是“显示包内容”,找到文件:
/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf,
搜索visualvm_jdkhome,放开注释,路径根据命令显示结果设定

visualvm_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home"

三、查看JDK路径

查看所有版本(大V):

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.0_101, x86_64:  "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7"     /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

查看指定版本(小V):

$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

四、指定命令行中的jdk版本

$ vim .bash_profile

#指定默认版本
export JAVA_HOME=`/usr/libexec/java_home`
export JAVA_HOME=$(/usr/libexec/java_home)
#指定自定义版本
export JAVA_HOME=`/usr/libexec/java_home -d 64 -v 1.7`
export JAVA_HOME=$(/usr/libexec/java_home -d 64 -v 1.7)
setjdk() {
  export JAVA_HOME=$(/usr/libexec/java_home -v $1)
}

setjdk()可以不加,加上之后,修改更方面,在命令行输入,可以很方便的切换Java版本

setjdk 1.8

猜你喜欢

转载自blog.csdn.net/supercooly/article/details/52252126