zoukankan      html  css  js  c++  java
  • Mac下jdk多版本管理

    网上试了.bash_profile中增加路径设置别名的方法,但是始终无法切换,只能使用jenv了。

    1. 下载 jenv(来自官网)

    git clone https://github.com/gcuisinier/jenv.git ~/.jenv

    2. 安装 jenv

    $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
    $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
    $ source .bash_profile

    这将在 ~/.bash_profile 文件中追加一个 export 命令和 eval 命令。前者追加 jenv 的路径到环境变量 PATH 中,后者执行 jenv init -命令。这样每打开一个 bash 终端窗就可以调用 jenv 命令,并且默认执行一次 jenv init - 命令了。

    3. 查看 java 版本

    $ jenv versions
    * system (set by /Users/Bill/.jenv/version)

    可以看到 jenv 只列出了系统内置的 Java 版本(system),因为其它两个版本虽然安装了,但需要我们手动添加到 jenv 中,这样 jenv 才能管理它们。

    4. 添加新的 java 版本

    Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
    oracle64-1.6.0.65 added
    1.6.0.65 added
    1.6 added
    Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
    oracle64-1.7.0.75 added
    1.7.0.75 added
    1.7 added
    Bill-Mac:~ Bill$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
    oracle64-1.8.0.144 added
    1.8.0.144 added
    1.8 added

    5. 删除 java 版本

    你会发现添加新版本时,每个版本都会一次性自动加入 3 个不同版本,比如添加1.8的时候

    oracle64-1.8.0.144 added
    1.8.0.144 added
    1.8 added

    我们没有必要保留这么多版本,其实它们都指向同一个 JDK,我们可以把多余的两个版本删除:

    Bill-Mac:~ Bill$ jenv versions
    * system (set by /Users/Bill/.jenv/version)
      1.6
      1.6.0.65
      1.7
      1.7.0.75
      1.8
      1.8.0.144
      oracle64-1.6.0.65
      oracle64-1.7.0.75
      oracle64-1.8.0.144
    Bill-Mac:~ Bill$ jenv remove 1.6.0.65
    JDK 1.6.0.65 removed
    Bill-Mac:~ Bill$ jenv remove 1.7.0.75
    JDK 1.7.0.75 removed
    Bill-Mac:~ Bill$ jenv remove 1.8.0.144
    JDK 1.8.0.144 removed
    Bill-Mac:~ Bill$ jenv remove oracle64-1.6.0.65
    JDK oracle64-1.6.0.65 removed
    Bill-Mac:~ Bill$ jenv remove oracle64-1.7.0.75
    JDK oracle64-1.7.0.75 removed
    Bill-Mac:~ Bill$ jenv remove oracle64-1.8.0.144
    JDK oracle64-1.8.0.144 removed
    Bill-Mac:~ Bill$ jenv versions
    * system (set by /Users/Bill/.jenv/version)
      1.6
      1.7
      1.8

    6. 指定 Java 版本

    这要用 jenv local 命令:

    Bill-Mac:~ Bill$ jenv local 1.8
    Bill-Mac:~ Bill$ jenv versions
      system
      1.6
      1.7
    * 1.8 (set by /Users/Bill/.java-version)

    这样当前版本就变成 1.8 了,你可以看一下:

    Bill-Mac:~ Bill$ java -version
    java version "1.8.0_144"
    Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

    你要是想查看当前版本在硬盘上的哪个位置,可以用 jenv which java:

    Bill-Mac:~ Bill$ jenv which java
    /Users/Bill/.jenv/versions/1.8/bin/java

    这当然不是真实的路径,而是一个硬链接。你可以找到/Users/Bill/.jenv/versions目录,发现所有的 java 版本都被列在了这里,都是软链接,指向了对应的 java 安装目录

    Bill-Mac:versions Bill$ pwd
    /Users/Bill/.jenv/versions
    Bill-Mac:versions Bill$ ls -l
    total 24
    lrwxr-xr-x  1 Bill  staff  68  9  8 20:42 1.6 -> /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
    lrwxr-xr-x  1 Bill  staff  63  9  8 20:42 1.7 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
    lrwxr-xr-x  1 Bill  staff  64  9  8 20:42 1.8 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

    你还可以指定一个全局的版本:

    jenv global 1.8

    这样,默认的 java 版本就是 1.8 了。我理解的是所有用户都是1.8。但是我使用java -version还是显示1.7。

    所以尽量使用 jenv local 命令。

  • 相关阅读:
    负载均衡算法
    .NET Core 如何上传文件及处理大文件上传
    ado.net 批量添加 更新 删除
    asp.net mvc session锁问题
    C# Cache 设定过期时间的方法
    C# 开源项目
    Linux上 发布.Net Core
    Roslyn
    .net core 基础知识
    神经网络基础
  • 原文地址:https://www.cnblogs.com/happy-coder/p/7496383.html
Copyright © 2011-2022 走看看