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

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

  •  
  •   binarymann Apr 2, 2015 10010 views
    This topic created in 4060 days ago, the information mentioned may be changed or developed.
    请问要如何切换版本呢

    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 replies    2015-04-02 12:46:44 +08:00
    binarymann
        1
    binarymann  
    OP
       Apr 2, 2015
    我 `export JAVA_HOME='/usr/libexec/java_home -v 1.7'` 后重启terminal java -version 后还是java version "1.6.0_65"
    Septembers
        2
    Septembers  
       Apr 2, 2015 via Android
    which java
    soyking
        3
    soyking  
       Apr 2, 2015 via Android
    不是得export JAVA_HOME='你java7的地址'?
    caixiexin
        4
    caixiexin  
       Apr 2, 2015
    3l说的应该没错,你环境变量指向的还是机器自带的旧版本吧。
    znoodl
        5
    znoodl  
       Apr 2, 2015 via iPad
    你设置javahome只是JAVA运行中的环境变量,term中运行的需要加入path才有效吧
    livelazily
        6
    livelazily  
       Apr 2, 2015
    @binarymann 你这 export 仅仅是在 terminal 运行一次还是写到 profile 里? 直接在 terminal 里运行是当前 terminal 内生效, 重启 terminal 后就会恢复了... 不熟悉的话建议用 jenv 管理: http://www.jenv.be/
    binarymann
        7
    binarymann  
    OP
       Apr 2, 2015
    @soyking
    @caixiexin

    对,我的1.7明明提示安装成功了,但Library/java/JavaVirtualMachines下面是空的...
    caixiexin
        8
    caixiexin  
       Apr 2, 2015
    @binarymann mac下我不大清楚,ubuntu下面,我都是下载tar.gz或者zip压缩包,解压后,把环境变量指向到解压后的bin文件夹,配一下JAVA_HOME,然后source或者重启一下就好了。
    tan9le
        9
    tan9le  
       Apr 2, 2015
    google一下jEnv用法
    fvladlpa
        10
    fvladlpa  
       Apr 2, 2015
    应该是$PATH的问题
    xuhaoyangx
        11
    xuhaoyangx  
       Apr 2, 2015
    @binarymann /usr/libexec/java_home -V 查看机子上所有的java,和路径
    binarymann
        12
    binarymann  
    OP
       Apr 2, 2015
    @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  
       Apr 2, 2015   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  
       Apr 2, 2015
    xFan
        15
    xFan  
       Apr 2, 2015
    环境变量没指向正确的地址
    wanliang1221
        16
    wanliang1221  
       Apr 2, 2015
    查看环境变量,虽然我不知道MAC上时如何配置的。
    binarymann
        17
    binarymann  
    OP
       Apr 2, 2015
    @SoloCompany 这个绝对是正确方向,原来如此,我晚上回去试下
    yuankui
        18
    yuankui  
       Apr 2, 2015
    `export JAVA_HOME='/usr/libexec/java_home -v 1.7'` 改成
    export JAVA_HOME=`'/usr/libexec/java_home -v 1.7'`
    yuankui
        19
    yuankui  
       Apr 2, 2015
    你点打错了,你不知道吗?
    FinalAir
        20
    FinalAir  
       Apr 2, 2015
    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

    所有版本都可以任意转换
    About     Help     Advertise     Blog     API     FAQ     Solana     4267 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 65ms UTC 04:14 PVG 12:14 LAX 21:14 JFK 00:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86