Mac下兼容多JDK 支持灵活切换
MAC下,常规配置JDK的流程大致如下:
- 下载安装包,或使用brew install
- 以上步骤完成后,就需要在~/.bash_prfile中配置JAVA_HOME,PATH,CLASSPATH等参数
#~/.bash_profile文件
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
一、为什么要配置JAVA_HOME,PATH,CLASSPATH
在学习JAVA的时候,就是跟着老师和百度,把JAVA环境搭起来了,也没有考虑为什么要这么做,不配置就运行不了了吗?我们先了解一下这些配置的作用是什么?
可以通过JAVA程序编译过程简单了解编译Java程序、执行Java程序的环节
步骤1:javac将.java文件编译为.class文件
步骤2:找到java基础类库
步骤3:把.class文件读入到虚拟机的内存当中,然后转换成机器语言并解释执行
- PATH中,主要为了指明java javac的地址,避免安装路径不同,无法寻找到指令地址
- JAVA_HOME,主要为了全局化配置JAVA的地址,便于切换版本,便于其他组件引用
- CLASSPATH,主要为了指定java基础类库地址,从JDK1.5开始,Java运行时环境(JRE)有了自动搜索当前文件夹下.class文件,并自动加载dt.jar和tools.jar类库文件的功能,所以从JDK1.5开始,可以不用配置CLASSPATH环境变量
- 以上一系列操作主要是为了在命令行环境下,能够不指定地址前缀的情况下使用相关命令,比如:java,javac,npm,mvn…,但在目前IDE开发工具成熟的情况下,例如IDEA可以全局化配置jdk版本和JDK home目录,并为不同项目配置JDK版本,对于前面一堆操作都不用了
二、Mac下搭建多JDK环境
在~/.bash_profile文件中增加如下内容,配置保存后source ~/.bash_profile使其生效
export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/jdk1.11.0_11.jdk/Contents/Home"
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"
export JAVA_HOME=$JAVA_8_HOME
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
- 默认JAVA8的版本,可以通过jdk11和jdk8的命令灵活切换
- 对比单个JDK的配置,此处去除了PATH(不可添加,如果未删除切换会不生效,我踩的坑主要在这里),CLASSPATH(jdk5以后不需要添加)
测试结果如下:
chen@004:/usr/bin$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
chen@004:/usr/bin$ jdk11
chen@004:/usr/bin$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
chen@004:/usr/bin$ jdk8
chen@004:/usr/bin$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
chen@P004:/usr/bin$ 
Featured Tags
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    工具类
                                
                            
        				
                            
                				
                                    XML
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    JAVA
                                
                            
        				
                            
                				
                                    Java
                                
                            
        				
                            
                				
                                    Mybatis
                                
                            
        				
                            
        				
                            
                				
                                    反射
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    代理模式
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    日志
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    工厂方法模式
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    装饰器模式
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    结果集映射
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Web
                                
                            
        				
                            
                				
                                    RESTful
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    WebAPI规范
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SQL
                                
                            
        				
                            
                				
                                    Redis
                                
                            
        				
                            
        				
                            
                				
                                    Jira
                                
                            
        				
                            
                				
                                    SynapseRT
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    有限状态机 State Machine
                                
                            
        				
                            
                				
                                    statemachine
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SpringBoot
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    IDEA
                                
                            
        				
                            
                				
                                    Tomcat
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    Vue
                                
                            
        				
                            
                				
                                    Docker
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Springboot
                                
                            
        				
                            
        				
                            
                				
                                    Apache Ignite
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    项目发布与调试
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    白帽子讲web安全
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    黑名单
                                
                            
        				
                            
                				
                                    通用化
                                
                            
        				
                            
                				
                                    企业中台实践
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    MacOS
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    docker
                                
                            
        				
                            
        				
                            
                				
                                    minio
                                
                            
        				
                            
                				
                                    springboot
                                
                            
        				
                            
                				
                                    分布式存储
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Postgres
                                
                            
        				
                            
                				
                                    数据备份
                                
                            
        				
                            
                				
                                    数据恢复
                                
                            
        				
                            
                				
                                    Elasticsearch
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    K8S
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    抖音小程序
                                
                            
        				
                            
                				
                                    开发实践
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SpringCloud
                                
                            
        				
                            
                				
                                    PostgreSQL
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Skywalking
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Nacos
                                
                            
        				
                            
        				
                            
                				
                                    Kubernetes
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Secret
                                
                            
        				
                            
                				
                                    ConfigMap
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Git
                                
                            
        				
                            
                				
                                    GitOps
                                
                            
        				
                            
        				
                            
                				
                                    云原生
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    RocketMQ
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    ActiveMQ-Artemis
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    ClickHouse
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Kamailio
                                
                            
        				
                            
                				
                                    SIP
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    sipp
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    Homer
                                
                            
        				
                            
                				
                                    heplify
                                
                            
        				
                            
                				
                                    heplify-server
                                
                            
        				
                            
                				
                                    HEP
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    MySQL
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    OpenSIPS
                                
                            
        				
                            
                				
                                    sip
                                
                            
        				
                            
                				
                                    DeepSeek
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Manticore Search
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
        			
                