警告
- 这是一个备忘录
- 与现有信息重复
- 如果您需要更多信息,请随时在评论中告知我们。
你想做的事
- 我想亲自使用现代Java(那个时代是Java11 !!!)
- 毕竟与别人的项目是Java8
-
看来你可以用jenv做到这一点
环境
- 执行日期:2019/01/04
- macOS Mojave 10.14.2
- 鱼,版本3.0.0
- 自制软件1.8.6
壳牌纪录
"要做的事情"和"不必做什么"混在一起。
一些输出已被省略。
版本信息
1 2 3 4 5 6 7 8 9 10 | ?> ~ sw_vers ProductName: Mac OS X ProductVersion: 10.14.2 BuildVersion: 18C54 ?> ~ fish -v fish, version 3.0.0 ?> ~ brew -v Homebrew 1.8.6 Homebrew/homebrew-core (git revision 0857; last commit 2019-01-03) Homebrew/homebrew-cask (git revision 89dd0; last commit 2019-01-03) |
下载自制酒桶版本
我仍然不确定这是什么,但是它可能是一个神奇的软件包,允许您使用多个版本。
1 | x> ~ brew tap caskroom/versions |
下载您最喜欢的Java
-
自2019年1月起,每个版本对应的冲泡包装名称(尽管都是桶装的)
-
java ……OpenJDK 11 -
java8 ……OracleJDK 8 -
java6 ……这是什么(从support.apple.com下载) -
java-beta ……OpenJDK 12早期访问(哇)
-
1 | ?> ~ brew cask install java java8 |
把jenv
类似于
pyenv。我从没用过pyenv,所以我并不熟悉。
1 2 | ?> ~ brew install jenv ?? /usr/local/Cellar/jenv/0.4.4: 78 files, 65.5KB, built in 6 seconds |
??表情符号很可爱。
鱼的其他设置
鱼类的生长环境需要特殊设置。没有写在http://www.jenv.be/ https://github.com/gcuisinier/jenv上已经很老了。这部分是本文存在的唯一原因。
将路径传递给jenv
brew为您做到了,所以您不需要它。
设置鱼的jenv功能(?)
似乎您需要注册一个宏才能使用jenv。我不知道为什么有必要。好吧,我想知道该鱼的宏,脚本和函数在哪里应该被称为
。
1 2 | > ~ ls -al /usr/local/bin/jenv lrwxr-xr-x 1 (中略) admin 29 1 4 00:32 /usr/local/bin/jenv -> ../Cellar/jenv/0.4.4/bin/jenv |
嗯,鱼的实际状况似乎在
左右
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ?> ~ find /usr/local/Cellar/jenv/ | grep fish /usr/local/Cellar/jenv//0.4.4/libexec/fish /usr/local/Cellar/jenv//0.4.4/libexec/fish/export.fish /usr/local/Cellar/jenv//0.4.4/libexec/fish/jenv.fish ?> ~ cat /usr/local/Cellar/jenv/0.4.4/libexec/fish/jenv.fish set PATH $HOME/.jenv/shims $PATH command jenv rehash 2>/dev/null function jenv set cmd $argv[1] set arg "" if test (count $argv) -gt 1 # Great... fish first array index is ... 1 ! set arg $argv[2..-1] end switch "$cmd" case enable-plugin rehash shell shell-options set script (jenv "sh-$cmd" "$arg") eval $script case '*' command jenv $cmd $arg end end |
我当时在那儿,也许我应该在鱼上注册这个
似乎在鱼中使用的函数应该放在
1 2 | ?> ~ mkdir -p ~/.config/fish/functions/ ?> ~ cp /usr/local/Cellar/jenv/0.4.4/libexec/fish/jenv.fish ~/.config/fish/functions/ |
确定吗?
重新启动终端
也许这完成了jenv维护。
让我们切换版本
检查您拥有
的Java的java_home
1 2 3 4 5 6 | ?> ~ /usr/libexec/java_home -V Matching Java Virtual Machines (2): 11.0.1, x86_64: "OpenJDK 11.0.1" /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home 1.8.0_192, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home |
底部的是当前路径通过的那个。可能是。
向jenv注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ?> ~ jenv add (/usr/libexec/java_home -v 1.8) oracle64-1.8.0.192 added 1.8.0.192 added 1.8 added ?> ~ jenv add (/usr/libexec/java_home -v 11) openjdk64-11.0.1 added 11.0.1 added 11.0 added ?> ~ jenv versions * system (set by /Users/(中略)/.jenv/version) 1.8 1.8.0.192 11.0 11.0.1 openjdk64-11.0.1 oracle64-1.8.0.192 |
已添加很多内容。耶。
这是否意味着您可以指定次要版本或主要版本?
让我们切换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ?> ~ jenv global 1.8 ?> ~ jenv versions system * 1.8 (set by /Users/(中略)/.jenv/version) 1.8.0.192 11.0 11.0.1 openjdk64-11.0.1 oracle64-1.8.0.192 ?> ~ java -version java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode) ?> ~ javac -version 01:26:14 javac 1.8.0_192 ?> ~ jshell -version Unable to locate an executable at "/Users/(中略)/.jenv/versions/1.8/bin/jshell" (-1) ?> ~ jenv global 11.0 ?> ~ jenv versions system 1.8 1.8.0.192 * 11.0 (set by /Users/(中略)/.jenv/version) 11.0.1 openjdk64-11.0.1 oracle64-1.8.0.192 ?> ~ java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) ?> ~ javac -version javac 11.0.1 ?> ~ jshell -version jshell 11.0.1 ?> ~ jenv global system |
很高兴感觉到它正在切换。
1 2 3 4 | ?> ~ which java /Users/(中略)/.jenv/shims/java ?> ~ which javac /Users/(中略)/.jenv/shims/javac |
我明白了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ?> ~ mkdir a ?> ~ cd a ?> ~/a jenv local 1.8 ?> ~/a java -version java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode) ?> ~/a cd .. ?> ~ mkdir b ?> ~ cd b ?> ~/b jenv local 11.0 ?> ~/b java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) ?> ~/b ls ?> ~/b ls -a . .. .java-version ?> ~/b cat .java-version 11.0 ?> ~/b cd .. ?> ~ cd a/ ?> ~/a cat .java-version 1.8 ?> ~/a mkdir b ?> ~/a cd b ?> ~/a/b java -version java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode) ?> ~/a/b jenv local 11.0 ?> ~/a/b java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) |
对于每个
目录,将使用的版本写入
概括
没有什么可以放在一起的。
Qiita它成为了似乎被评为最差文章排名的文章。
我担心无意中泄露个人信息。