Java 环境在 Mac Big Sur 有时候真的很让人琢磨不透。
经常出现命令行可以, GUI程序中不可以(jekenis 或者 各种android dex破解工具)
我一直在寻找如何给GUI程序给设置环境变量方法, 效果不理想。
花了好几个小时,换来几个相关知识点吧。
1. 通过dmg安装Java,可能的路径是
目录1:/Users/dzq/Library/Java/JavaVirtualMachines/
目录2:/Library/Java/JavaVirtualMachines/
2. 通过brew 方式安装openjdk
实际目录:/usr/local/Cellar/openjdk..
软链接目录: /usr/local/opt/openjdk..
再说一下Mac默认的Java程序:
目录1: /usr/bin/java
目录2:/usr/libexec/java_home
两个路径下可执行程序是一样的
通过实战摸索出来一个结论, 其实大可以不必设置JAVA_HOME JAVA_BIN环境变量,
/usr/bin/java 程序会自动到 JavaVirtualMachines 目录去找Java运行环境。
比如我现在的环境, 没有设置java环境变量, 不管是控制台还是依赖java的GUI程序,都可以完美运行。
控制台输入 java -verbose
当然设置环境变量是有用的,控制台程序可以指定哪个版本的Java, 但是这种方法对GUI程序无效, 该找不到Java环境依旧找不到, 即使安装了Java又怎么样。
到现在依旧有一个心结,就是如何给GUI程序指定Java运行环境。 之前在/etc/bashrc中新增环境变量, 依然无效。
目前有一种解决方案就是把Java运行环境放到JavaVirtualMachines路径下吧, 至于想不想设置JAVA_HOME环境,您随意就好。
不知道这是不是通用的方案,但是这种方式至少对我有用。
===========================
java 下载地址:
java8:
https://corretto.aws/downloads/resources/8.302.08.1/amazon-corretto-8.302.08.1-macosx-x64.tar.gz
java11:
https://repo.huaweicloud.com/java/jdk/11.0.2+9/jdk-11.0.2_osx-x64_bin.dmg
dmg方法自动安装在/Library/Java/JavaVirtualMachines
tar.gz方式 你自己解压放到JavaVirtualMachines目录就行。 如果只想当前用户使用这个Java, 那就放在/User/xxxx/Library/Java/JavaVirtualMachines
java 程序优先找所有用户的Java环境目录: /Library/Java/JavaVirtualMachines
那么就建议统一放到/Library/Java/JavaVirtualMachines目录下吧