V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
binarymann
V2EX  ›  Java

我的 mac 上安装了 java 7u75 但在命令行 java -version 还是 1.6.0

  •  
  •   binarymann · 2015-04-02 08:00:02 +08:00 · 9201 次点击
    这是一个创建于 3522 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问要如何切换版本呢

    java -version
    java version "1.6.0_65"
    Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
    Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
    20 条回复    2015-04-02 12:46:44 +08:00
    binarymann
        1
    binarymann  
    OP
       2015-04-02 08:04:46 +08:00
    我 `export JAVA_HOME='/usr/libexec/java_home -v 1.7'` 后重启terminal java -version 后还是java version "1.6.0_65"
    Septembers
        2
    Septembers  
       2015-04-02 08:08:21 +08:00 via Android
    which java
    soyking
        3
    soyking  
       2015-04-02 08:15:02 +08:00 via Android
    不是得export JAVA_HOME='你java7的地址'?
    caixiexin
        4
    caixiexin  
       2015-04-02 08:16:19 +08:00
    3l说的应该没错,你环境变量指向的还是机器自带的旧版本吧。
    znoodl
        5
    znoodl  
       2015-04-02 08:16:52 +08:00 via iPad
    你设置javahome只是JAVA运行中的环境变量,term中运行的需要加入path才有效吧
    livelazily
        6
    livelazily  
       2015-04-02 08:27:08 +08:00
    @binarymann 你这 export 仅仅是在 terminal 运行一次还是写到 profile 里? 直接在 terminal 里运行是当前 terminal 内生效, 重启 terminal 后就会恢复了... 不熟悉的话建议用 jenv 管理: http://www.jenv.be/
    binarymann
        7
    binarymann  
    OP
       2015-04-02 08:36:47 +08:00
    @soyking
    @caixiexin

    对,我的1.7明明提示安装成功了,但Library/java/JavaVirtualMachines下面是空的...
    caixiexin
        8
    caixiexin  
       2015-04-02 08:43:30 +08:00
    @binarymann mac下我不大清楚,ubuntu下面,我都是下载tar.gz或者zip压缩包,解压后,把环境变量指向到解压后的bin文件夹,配一下JAVA_HOME,然后source或者重启一下就好了。
    tan9le
        9
    tan9le  
       2015-04-02 08:47:59 +08:00
    google一下jEnv用法
    fvladlpa
        10
    fvladlpa  
       2015-04-02 08:48:48 +08:00
    应该是$PATH的问题
    xuhaoyangx
        11
    xuhaoyangx  
       2015-04-02 08:53:54 +08:00
    @binarymann /usr/libexec/java_home -V 查看机子上所有的java,和路径
    binarymann
        12
    binarymann  
    OP
       2015-04-02 09:07:16 +08:00
    @xuhaoyangx 太奇怪了,居然没有1.7,但我通过jre-7u75-macosx-x64.dmg明明安装成功了的呀

    /usr/libexec/java_home -V
    Matching Java Virtual Machines (2):
    1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    SoloCompany
        13
    SoloCompany  
       2015-04-02 09:22:10 +08:00   ❤️ 1
    @binarymann 你要装 JDK,jre 没有安装到系统 framework 下面的,你看 java control panel 就知道了,是装到这个位置 '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin’ 并且没有多个版本的

    顺便

    /usr/libexec/java_home -V
    Matching Java Virtual Machines (4):
    1.8.0_25, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
    1.7.0_72, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_72.jdk/Contents/Home
    1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

    /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home


    /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version
    java version "1.8.0_31"
    Java(TM) SE Runtime Environment (build 1.8.0_31-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
    laoyur
        14
    laoyur  
       2015-04-02 09:47:23 +08:00
    xFan
        15
    xFan  
       2015-04-02 09:54:01 +08:00
    环境变量没指向正确的地址
    wanliang1221
        16
    wanliang1221  
       2015-04-02 09:59:39 +08:00
    查看环境变量,虽然我不知道MAC上时如何配置的。
    binarymann
        17
    binarymann  
    OP
       2015-04-02 10:00:28 +08:00
    @SoloCompany 这个绝对是正确方向,原来如此,我晚上回去试下
    yuankui
        18
    yuankui  
       2015-04-02 10:29:05 +08:00
    `export JAVA_HOME='/usr/libexec/java_home -v 1.7'` 改成
    export JAVA_HOME=`'/usr/libexec/java_home -v 1.7'`
    yuankui
        19
    yuankui  
       2015-04-02 10:29:22 +08:00
    你点打错了,你不知道吗?
    FinalAir
        20
    FinalAir  
       2015-04-02 12:46:44 +08:00
    function setjdk() {
    if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
    fi
    }

    function removeFromPath() {
    export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
    }

    setjdk 1.7

    所有版本都可以任意转换
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2274 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.