關(guān)于安裝多個JDK后mac默認雙擊打開jar報錯的問題

命令行切換多個版本JDK的解決辦法:http://www.itdecent.cn/p/af79ae7f732c

雙擊jar文件時默認是使用/System/Library/CoreServices/JavaLauncher.app打開的,然后在安裝過jdk11之后JavaLauncher.app默認會使用JDK11去打開jar文件,如果必須使用低版本的jdk打開jar文件一般情況下只能在命令行使用java -jar的形式去打開,因為命令行的java版本可以通過修改環(huán)境變量的形式來切換。

但是每次打開一個jar文件都需要開啟一個shell很麻煩,搜了好久終于在Stack Overflow上找到一個解決辦法了。
https://stackoverflow.com/questions/17885494/how-can-i-change-mac-oss-default-java-vm-returned-from-usr-libexec-java-home

可以看到這里默認的java_home是使用的jdk11:

java_home

每次安裝完新的JDK之后, /Library/Internet Plug-Ins/JavaAppletPlugin.plugin會自動替換上次安裝JDK時的jre,但是JavaLauncher.app并不會通過它執(zhí)行,也不會通過環(huán)境變量里配置的java_home來執(zhí)行,它只通過 /usr/libexec/java_home 獲取的jdk進行執(zhí)行。因為 /usr/libexec/java_home 是個二進制文件,且該文件夾的內(nèi)容由于mac系統(tǒng)設定無法進行修改,參考上面的鏈接,最后找到一個折中的辦法:

  1. 修改高版本JDK目錄下的info.plist
info.plist
  1. 需要切換JDK時,修改環(huán)境變量的參數(shù):
    可以看到這里默認的JDK版本已經(jīng) 從11切換到1.8.301了
java_home

需要使用JDK11時:

/usr/libexec/java_home -v '!11'
image.png

以后雙擊打開jar文件就會默認使用/usr/libexec/java_home這里輸出的版本了,如果修改完后沒有生效,建議重啟一次系統(tǒng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容