Mac jenv m1下java的版本控制

jenv是什么

Mac jenv 初次看到jenv的同学大概率是比较懵的。不知道它是什么。jenv是一个Mac os 下的java多版本的管理工具.和Pyenv的作用同一系列的.

macOS安装jenv

    brew install jenv

配置jenv

Mac不同的系统版本对环境变量的控制使用的是不同的文件,早起的系统一般是

     ~/.bash_profile

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

不过,比较新的os不再默认存在上述文件,而是一个新的文件( Mac m1)

    ~/.zshrc

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

JDK所有版本


/usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    12.0.1, x86_64:    "OpenJDK 12.0.1"    /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home
    1.8.0_212, x86_64:    "AdoptOpenJDK 8"    /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:    "Java SE 6"    /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386:    "Java SE 6"    /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

使用 jenv add 命令挨个将上述路径添加即可

jenv配置java路径

jenv add /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

JEnv 的精髓是 shell、local 和 global 三个参数命令。shell 用于设置终端窗口生命周期内使用的 JDK 版本;local 用于设置当前目录下使用的 JDK 版本;而 global 用于设置全局使用的 JDK 版本。这三个命令的使用方式都一样

jenv查看和设置java版本

ethan$ jenv versions
  system
  1.8
  1.8.0.291
* 11.0 (set by /Users/ethan/.jenv/version)
  11.0.15
  16.0
  16.0.1
  openjdk64-11.0.15
  openjdk64-16.0.1
  oracle64-1.8.0.291

ethan$ jenv global 11.0

springboot 源码fork后下载到本地的血泪历程

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者

百度百科

spring boot的介绍以及它的优点缺点种种信息,笔者不再累赘。此篇旨在记录一下笔者自己下载spring boot源码时的过程,真的是费时费力又费心。

由于笔者想要跟踪阅读源码,也可能在浏览源码时在源代码是做笔记记录,或对其代码做部分的调整和验证,而每次修改的记录又没法完全靠脑子记录下来,所以笔者把springboot的源码fork到自己的GitHub分支上,直接Git clone fork后的分支,这样本地的修改都可以在git中有所记录,而且也可以把笔记和一些心得临时记录在git中push到自己的分支,以便后续整理汇总。

问题一: time out

直接git clone 总是time out,跟网络有一定的关系,不可描述的原因导致有些时候我们用gayhub的时候必须科学上网,如果没法科学上网那就多尝试几次,总有一年可以搞定。

Git clone time out

问题二:OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

Git clone的时候如果出现了如下图的错误,这个时候需要关闭SSL CERT verification,通过命令

SSL_ERROR_SYSCALL

git config http.sslVerify “false”

如果还是报错,那就把全局的也调一下

git config –global http.sslVerify “false”

问题三:Git clone 完成没有文件

我们经过很长一段时间的下载终于把所有的文件都下载完成了,而且也提示了如下图的完成下载仪式,可以在文件中什么都没有。 别慌,这个时候需要再一个命令把下载的内容都变出来。

git checkout FETCH_HEAD

上边的命令执行完成后,我们就可以看到文件了,而且执行日志中也会有给我们的提示,提示我们要自己 git checkout -b <new-branch-name>, 意思是让我们建一个本地的分支,不然现在的分支没有一个正经的名字。