Mac High Sierra下SQL Workbench需Java 8,如何定位并降级Java版本?
我来帮你搞定这个Java版本适配的问题哈,SQL Workbench对Java版本的要求确实挺严格的,旧版本的Workbench基本只认Java 8,咱们一步步来解决:
1. 先确认系统里的Java版本情况
你已经用了/usr/libexec/java_home -V这个命令(注意这里的V是大写的,小写v只会返回当前默认版本的路径),但目前结果里只显示了Java 9.0.4,没看到Java 8。如果系统里还没装Java 8,得先去Oracle官方渠道下载适配Mac High Sierra的Java SE 8安装包,安装完成后再重新运行/usr/libexec/java_home -V,就能看到Java 8的条目了。
2. 精准定位Java 8的可执行文件
每个JDK的可执行文件都在各自Home目录下的bin文件夹里。你可以用下面的命令直接获取Java 8的Home路径:
/usr/libexec/java_home -v 1.8
把这个结果后面加上/bin/java,就是Java 8可执行文件的完整路径了,比如可能是/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/bin/java。
3. 临时让SQL Workbench用Java 8启动(单次生效)
如果不想全局更改Java版本,只是让SQL Workbench单独用Java 8运行,那可以在终端里先设置临时环境变量,再启动程序:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) open /Applications/SQLWorkbenchJ.app
这样启动的SQL Workbench就会用Java 8运行,不会再弹出版本不兼容的提示了。
4. 永久切换系统默认Java版本(全局生效)
要是想让整个系统默认用Java 8,就得修改shell的配置文件:
- 如果你用的是bash,编辑
~/.bash_profile;如果是zsh,编辑~/.zshrc - 在文件末尾添加一行:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) - 保存后执行
source ~/.bash_profile(zsh用户执行source ~/.zshrc),让更改立即生效。之后再运行java -version(注意是两个减号,你之前可能输错成java -v了,所以内容显示不全),就能看到版本已经变成Java 8了。
补充:解决java -version显示不全的问题
你提到执行java -v...内容没完整显示,应该是输入了错误的命令,正确查看当前生效Java版本的命令是java -version(两个减号),执行这个命令就能完整看到版本号、运行环境等信息了。
内容的提问来源于stack exchange,提问作者xyin

