0x00 本文主要记录mac上jenv管理多版本java的坑; 前提是配置好brew镜像,确保brew update会正常执行而不是卡住。 0x01 安装jenv brew install jenv # 添加jenv环境变量,修改用户文件夹下对应的~/.bash_profile或者~/.zhsrc export PATH="$HOME/.jenv /bin:$PATH" eval "$(jenv init -)" # 如果遇到类似报错, xxxx/.jenv/versions/openjdk64-1.8.0.422: No such file or 管理java jenv add /Library/Java/JavaVirtualMachines/openjdk-8.jdk/Contents/Home jenv add /Library/Java -21.jdk/Contents/Home 0x05 使用jenv指定java # 查看可用java jenv versions # 全局 jenv global 21 # 当前目录 jenv local
Home/ source ~/.bash_profile jdk8 source ~/.bash_profile java -version echo $JAVA_HOME brew install jenv echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile jenv versions jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/ jenv versions jenv remove 1.6 jenv local 1.8.0.25 java -version jenv which java 完整路径
偶然发现Java也有个类似的框架,叫jenv。遗憾的是jenv目前只支持MacOS和Linux。暂时没有适配Windows。 在jenv的Issue中看到一个讨论,但没有结论() 值得一提的好消息是,一位大佬fork了jenv实现了一个Windows版本.. 坏消息是,Windows版本最新更新是一年前() so? (jenv issue关于支持Windows的讨论): https://github.com/jenv/jenv/issues/35 2. (大佬fork jenv仓库实现的Window版): https://github.com/FelixSelter/JEnv-for-Windows/
答案是我们可以通过jenv来实现相同的效果。 安装 jEnv 安装 jEnv $ brew install jenv $ exec $SHELL -l 安装完成之后,然后检查是否安装成功。 $ jenv doctor [OK] No JAVA_HOME set [ERROR] Java binary in path is not in the jenv shims. =zsh export JENV_LOADED=1 unset JAVA_HOME source '/usr/local/Cellar/jenv/0.5.2/libexec/libexec/.. /completions/jenv.zsh' jenv rehash 2>/dev/null jenv() { typeset command command="$1" if [ "$#" 中的JDK版本: $ jenv shell 1.8 $ java -version 参考链接 http://www.jenv.be/ https://github.com/jenv/jenv https
我们需要更加便捷,细粒度的控制工具,这里推荐JEnv这款工具。 JEnv工具使用 如官网所说JEnv是一款让你忘记如何配置JAVA_HOME的神器,使用简单的命令就可以在不同Java版本之间进行切换。 JEnv的安装 在Mac OS下可使用Homebrew安装JEnv: brew install jenv 等待上述命令安装成功后,还需在.bash_profile中进行一下配置。 还是以现在的Java 8和Java 9环境为例,我们通过jenv add命令将对应的Java路径添加到jenv中: $ jenv add /Library/Java/JavaVirtualMachines JEnv的使用 完成了上述安装,便可以通过命令来切换所使用的Java版本了: $ jenv local 1.8.0.151 /usr/local/Cellar/jenv/0.5.5_2/libexec/ not use java version set by jenv [OK] Java binaries in path are jenv shims [OK] Jenv is correctly loaded
jenv有点类似node的nvm之类的用来管理多版本 安装 brew install jenv echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc mkdir -p ~/.jenv/versions 注册java版本 jenv add /Library/Java/ /Contents/Home jenv add /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home 查看版本 jenv versions ,jenv可以作用到之后新打开的窗口。 doc jenv java-environment-management jenv add “ln No such file or directory” #167 Unix / Linux Shell
本文介绍macOS下使用HomeBrew和jEnv进行Java多版本管理 升级HomeBrew (首先你得安装HomeBrew) brew update 允许brew命令查找版本信息 brew brew install jenv 设置环境变量(使用Bash的在~/.bash_profile文件中进行配置,使用Zsh的在~/.zshrc文件中配置) export PATH="$HOME/.jenv /bin:$PATH" eval "$(jenv init -)" 添加Java虚拟环境(我这里添加了Java8,Java9和Java10) jenv add /Library/Java/JavaVirtualMachines jenv add /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home 查看已添加的Java版本 jenv versions 设置当前 Java版本 jenv shell oracle64-1.8.0.162 (当前shell) jenv global oracle64-1.8.0.162 (全局设置) 查看是否生效 java -
jenv 安装 手动安装 首先下载 jenv 源程序 git clone https://github.com/jenv/jenv.git ~/.jenv 然后再将 jenv 命令路径放入 Shell brew 安装: brew install jenv jenv 校验 安装 jenv 之后,可以运行 jenv doctor 检查是否正确安装。 jenv 配置 JDK 配置 运行 jenv add jdk_path,将 JDK 交给 jenv 管理。 ? jenv enable-plugin export ## 运行这个才会生效 exec $SHELL -l jenv 使用教程 jenv versions 查看当前系统 jenv 管理所有 JDK 版本。 jenv global 9.0 jenv 小问题 上面几个是 jenv 经常使用的指令,若想了解 jenv 其他指令,可以通过 jenv commands 查找其他指令。
2.2 使用 jEnv 统一管理(推荐) jEnv 是跨平台的 Java 版本管理工具,支持 macOS、Linux。 安装 jEnv(需先安装 Homebrew): brew install jenv 将 jEnv 集成到 shell 配置: echo 'export PATH="$HOME/.jenv/bin:$PATH "' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc source ~/.zshrc 添加已安装的 JDK: jenv add /Library -17.0.7.jdk/Contents/Home 列出与切换: jenv versions jenv global 11 # 全局切换到 Java 11 jenv local 1.8 # 针对当前目录切换到 Java 1.8 jenv shell 17 # 仅对当前 shell 有效 jEnv 会自动管理 JAVA_HOME 与 PATH,并支持插件扩展
答案是Jenv: 什么是Jenv Jenv项目地址:https://www.jenv.be 按照官网的解释: jEnv is a command line tool to help you forget 如何配置Jenv Jenv配置方法很简单,两个方法: 使用Git自动部署git clone https://github.com/jenv/jenv.git ~/.jenv echo 'export PATH 和上文一样,解压到自己知道路径的地址后,配置环境变量: vim /etc/profile 我解压的地址是/etc/jenv: [Jenv解压后] 所以,我们环境变量就这样写: # Jenv export 如何使用Jenv Jenv的使用很简单,利用配置JDK8的方法,我下载了JDK11,存储地址是/ZuluJDK/JDK11,我们添加到Jenv里: jenv add /ZuluJDK/JDK11 [添加 你可以放任不管,但是如果你是“强迫症”人群,可以手动remove多余名称: [remove多余名称] 之后,使用versions命令,可以看到Jenv管理的JDK版本: jenv versions [jenv
2.18.6 changes JDK-8194935 : Cherry pick GTK WebKit 2.18.5 changes 5个bugfix,其中后面3个都是javafx的 安装 添加10.0.1到jenv jenv add /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home oracle64-10.0.1 added 10.0.1 added 10.0 added 使用 jenv local 10.0.1 java -version java version "10.0.1" 2018-04-17 Java(TM) SE Runtime
可以安装一下 jEnv,一个帮助我们管理 JAVA_HOME 的命令行工具,在 GitHub 上已经收获 4.3k 的 star。 GitHub 地址:https://github.com/jenv/jenv 官方文档也非常的简洁大方: https://www.jenv.be/ 安装: brew install jenv 配置 : echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc 添加 : jenv add /usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/ JDK 的安装路径可以通过下图的位置查找。 管理: jenv versions jenv global 17.0.3 是不是贼方便?
多版本 Java 管理 显然我们不是第一个有这种困境的人,我所知道的现有方案有三种: Jabba 「https://github.com/shyiko/jabba」 jenv 「https://github.com /jenv/jenv」 sdkman 「https://sdkman.io/」 本文主要说明如何通过 sdkman 打破我们面临的困境,帮助我们灵活配置与使用 Java sdkman 介绍 SDKMAN zshrc,找到 .zshrc 文件删除掉上面内容即可 到这里基于 Unix 系统的,有关 sdkman 的安装,使用及下载都已经介绍完了,可以上手试一试了,相信很多小伙伴用的是 Windows,除了 jenv
adoptopenjdk.net Graal https://github.com/oracle/graal Open JDK https://openjdk.java.net/、 多版本 Java 支持 jenv https://github.com/jenv/jenv 爬虫相关 Nutch https://nutch.apache.org/ Crawler4j https://github.com/yasserg
JNITHREAD_JAVALISTENER_H #define JNITHREAD_JAVALISTENER_H class JavaListener { public: JavaVM *jvm; _JNIEnv *jenv ); jvm->DetachCurrentThread(); } else if(type == 1) { jstring jmsg = jenv ->NewStringUTF(msg); jenv->CallVoidMethod(jobj, jmid, code, jmsg); jenv->DeleteLocalRef jmsg); } } JavaListener::JavaListener(JavaVM *vm, _JNIEnv *env, jobject obj) { jvm = vm; jenv
如果有切换多个版本的jdk需求的话,可以使用jenv这个工具,参考在OS X中使用jEnv管理多个Java版本 安装其他软件 1、安装MacPorts,需要去官网下载对应版本的MacPorts 2、 *源码时还会遇到几个问题,记录下: 1、报java版本错误,用jenv修改下即可。 $jenv local 1.6.0.65 2、 build/core/base_rules.mk:130: **external/webrtc/src/system_wrappers/source: Build Android 5.0 Lollipop on OSX 10.10 Yosemite http://blog.bihe0832.com/macOS-AOSP.html 在OS X中使用jEnv
多版本 Java 管理 显然我们不是第一个有这种困境的人,我所知道的现有方案有三种: Jabba 「https://github.com/shyiko/jabba」 jenv 「https://github.com /jenv/jenv」 sdkman 「https://sdkman.io/」 本文主要说明如何通过 sdkman 打破我们面临的困境,帮助我们灵活配置与使用 Java sdkman 介绍 SDKMAN zshrc,找到 .zshrc 文件删除掉上面内容即可 到这里基于 Unix 系统的,有关 sdkman 的安装,使用及下载都已经介绍完了,可以上手试一试了,相信很多小伙伴用的是 Windows,除了 jenv
maven export M2_HOME=/Users/liruihao/Applications/apache-maven-3.8.5 export PATH=$PATH:$M2_HOME/bin # jenv export PATH="$HOME/.jenv/bin:$PATH" eval "$(jenv init -)" # java export JAVA_8_HOME=/Library/Java/JavaVirtualMachines
developer/video/24850 Bilibili:https://www.bilibili.com/video/BV1Yw411d7bU 需要特别注意⚠️,如果你的macOS或者Linux,配置了jenv ,那么jenv的配置需要在JDK配置之前,比如我macOS本地就有配置jenv,需要这样编写环境变量: [jenv配置在JDK配置之前] 之后,还需安装ANT,方法也很多,最简单的是用软件包管理器安装:
https://github.com/oracle/graal Open JDK https://openjdk.java.net/ 多版本 Java 支持 jenvhttps://github.com/jenv /jenv 爬虫相关 Nutch https://nutch.apache.org/ Crawler4j https://github.com/yasserg/crawler4j jsoup https