zoukankan      html  css  js  c++  java
  • mac下同时安装jdk1.7和jdk1.8

     1.安装jdk1.7时会弹出报错,说版本不兼容。

    解决方案

    1. 双击安装包,使安装包挂在到机器上,即在Finder里可以看到一个名字为JDK 7 Update 60的Device。

      在terminal下输入以下命令,命令中的路径可能不同

    $ pkgutil --expand /Volumes/JDK 7 Update 60/JDK 7 Update 60.pkg /tmp/jdk.unpkg  
    $ cd /tmp/jdk.unpkg  
    $ vim Distribution  
    

      

    1. 将打开的文件内容替换,找到pm_install_check方法,修改为以下就行。
    function pm_install_check() {
      return true;
    }
    1. 重新打包
      $ pkgutil --flatten /tmp/jdk.unpkg /tmp/jdk.pkg 
    1. 开始重新安装包(新的包)
       $ open /tmp/jdk.pkg  
    • 1

    注意:原始挂在到机器上的安装包,一定得先关了才可以。

    2)

    配置

    安装完成之后,调出terminal命令行工具,检验安装是否成功:

    $ java -version
    java version "9"
    Java(TM) SE Runtime Environment (build 9+181)
    Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

    那如何进行版本切换呢?先看当前生效的JDK路径:

    $ which java
    /usr/bin/java
    $ cd /usr/bin
    $ ls -l
    ……
    lrwxr-xr-x   1 root   wheel        74 Oct 21 18:10 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
    lrwxr-xr-x   1 root   wheel        75 Oct 21 18:10 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
    lrwxr-xr-x   1 root   wheel        77 Oct 21 18:10 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
    ……

    可以发现这个java只是一个当前系统生效的JDK的一个软连接,Java安装的是实际位置位于

    /Library/Java/JavaVirtualMachines
    

    使用如下的命令可以指定当前系统使用哪个版本的JDK:

    $ /usr/libexec/java_home -v 版本号
    

    编辑bash_profile文件,添加如下内容(注意:JDK9不是 -v 1.9):

    $ vi ~/.bash_profile
    
    export JAVA_7_HOME="$(/usr/libexec/java_home -v 1.7)"
    export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
    export JAVA_9_HOME="$(/usr/libexec/java_home -v 9)"
    
    alias jdk7='export JAVA_HOME=$JAVA_7_HOME'
    alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
    alias jdk9='export JAVA_HOME=$JAVA_9_HOME'
    
    # 默认使用JDK8
    export JAVA_HOME=$JAVA_8_HOME
    
    $ source ~/.bash_profile
    

    版本切换

    如上配置之后,默认使用JDK1.8,然后使用jdk7jdk8jdk9来切换当前系统的JDK版本:

    $ java -version
    
    java version "1.7.0_80"
    Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
    
    # 切换到JDK1.8,使用如下命令
    $ jdk8
    $ java -version
    
    java version "1.8.0_111"
    Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
    
    # 切换到JDK9
    $ jdk9
    $ java -version
    
    java version "9"
    Java(TM) SE Runtime Environment (build 9+181)
    Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
    

    其他

    linux环境下JDK配置备份如下:

    $ sudo vi ~/.bashrc
    export JAVA_HOME=/my/java/home/jdk180
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    $ source ~/.bashrc
    

    windows环境下JDK配置如下:

    JAVA_HOME=/my/java/home/jdk180
    CLASSPATH=.;%JAVA_HOME%lib;%JAVA_HOME%jrelib
    PATH=%JAVA_HOME%in;%JAVA_HOME%jrein;%PATH%


    参考:http://adolphor.com/blog/2016/12/24/install-multiple-jdk-to-macos.html
    https://blog.csdn.net/zw235345721/article/details/78702254
  • 相关阅读:
    JavaEE——Struts(1)--Filter作为MVC的控制器 配置Struts2环境
    折叠菜单--实现左边目录,右边显示
    转载--竖向折叠菜单
    pest错误笔记
    JavaWeb--JQuery中的$(function())
    codeforces 440C. One-Based Arithmetic 解题报告
    codeforces 399B. Red and Blue Balls 解题报告
    codeforces 445B. DZY Loves Chemistry 解题报告
    2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告
    codeforces 441C. Valera and Tubes 解题报告
  • 原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/9428772.html
Copyright © 2011-2022 走看看