mac 上的java

1 在 mac终端下 输入 java -version 是哪里在执行java呢? which java 命令可以看到 /usr/bin/java

2 /usr/bin/java 只是一个替身 ,实际指向 /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java 通过 ls -l java 就能看出来

第2点提到的【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】其实也不是真正的java,因为Current文件夹是替身,它指向了同目录下的某个版本

4.第3点提到的A文件夹是安装java后系统生成的。它里面的Commands文件夹下有个java可执行文件,这个java其实调用了真真正正的java原身–>【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】(你试试把这个java改个名,再在终端里输入java就明白了哦)


PS:这里的版本号(1.6.0_37-b06-434)不同的机器可能不一样,也可能会存在多个版本,这就看你机器上装了多少个版本的java了

5. 归根到底,【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】才是真正的工作者啊,嘿,绕吧



先启动服务,把终端中的

Using JRE_HOME:        /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

类似这样的路径记录下来,可能你的和我的不一样


删除这些文件,你也可以移动到别的地方备份好

sudo rm -rf /System/Library/Java/JavaVirtualMachines

sudo rm -rf /System/Library/Frameworks/JavaVM.framework


这个文件夹里面的所有东西也是删掉或移动到别的地方

/Library/Java/JavaVirtualMachines


然后执行

pkgutil --pkgs=.*Java.*

看看有多少类似“com.apple.pkg.JavaForMacOSX107“这样的记录

,把这些记录都执行下面的语句删掉:

sudo pkgutil --forget com.apple.pkg.JavaForMacOSX107


删完基本电脑里的JDK都全部清除了


最后去https://developer.apple.com/downloads/index.action,需要applie id登录;

把Java for OS X 2013-003 Developer Package这个下载回来安装,记得是2013-003,不要装最新的2013-004


然后进入到下面的目录:

cd /System/Library/Frameworks/JavaVM.framework/Versions


运行/usr/libexec/java_home -v 1.6

获取java_home路径,一般会是/Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home这样的格式

把最后的Home去掉

替换下面的java_home路径

sudo ln -s java_home CurrentJDK


最后,ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

看看是否正确链接到jdk目录的Contents上,如果不是,把CurrentJDK删掉重新链接过



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值