iMac14.2 (27-inch, Late 2013) 使用 OpenCore Legacy Patcher 安裝 macOS Sonoma (14 ~ 14.2) 之後, 無法執行 JetBrains 開發工具的解決方案

老舊的 Apple 電腦在失去 Apple 官方支援之後,如果還想要繼續使用新版本的 macOS , OpenCore Legacy Patcher (OCLP) 提供的方案,應該是一個不錯的選擇。自己手邊的 iMac 2012/2013, MacBook Pro 2013/2014/2015, Mac mini 2012 也都可以透過 OCLP 成功安裝最新版本的 macOS Sonoma (14.x) ,美中不足的是,原先可以正常使用的 JetBrains 開發工具,在電腦升級至 Sonoma 之後,就完全無法使用,錯誤報告中一概看到的都是 Exception Type: EXC_BAD_ACCESS (SIGABRT) 這種記憶體存取錯誤的訊息。

也許有人會說, OCLP 本來就不是 Apple 官方認可的機制,會有問題很正常啊,如果繼續使用 Apple 提供支援的最後版本不就沒有問題了嗎? 的確是可以這麼想沒錯,但是我們也要知道,隨著作業系統不斷的更新,應用軟體也會跟著作業系統更新啊!停留在舊版本的 macOS ,哪天被應用軟體給拋棄也是剛好而已啊,我們也怨不得軟體公司。更何況 Apple 官方本來就不支援這些老舊硬體了,使用 OCLP 這個官方不支持的方式來安裝新的 macOS ,其實也只是從一個不被支援的狀態,進入另一個不支援的狀態罷了,也沒有說哪一個比另一個要來得好吧,想想看是不是這樣呢!

好回歸正題,我們來自己支援這種不被支援的狀態吧! 🙂

問題的根源

首先我們可以試著從命令列啟動 JetBrains 工具,這邊以 DataGrip 工具為例:

~ export IDEA_LAUNCHER_DEBUG=true
~ /Applications/DataGrip.app/Contents/MacOS/datagrip

從它的輸出中,我們可以發現錯誤的來源是 Java Runtime Environment ,而 DataGrip 預設使用的 Java Runtime 是它自帶的 OpenJDK Runtime Environment JBR-17.0.8+7-1000.8-jcef (17.0.8+7) (build 17.0.8+7-b1000.8) ,這個自帶的 Java Runtime 是位於 /Applications/DataGrip.app/Contents/jbr 這個目錄中。

看到這裡自己大概有個譜了,如果說這個自帶的 JRE 在其他 Apple 官方支援硬體中使用的 macOS 都沒問題,那去跟 JetBrains 官方尋求解答,大概是給自己找麻煩了吧!?

所以接下來自己就想要看看有沒有機會使用其他的 OpenJDK 版本來執行 DataGrip ,就可以順利執行它呢?

如何替換 JetBrains 官方自帶的 JRE

JetBrains 官方文件提供好幾種替換官方 JRE 的方式,由於系統中的 JetBrains 工具都已經無法順利啟動了,所以自己挑了一個最簡單的方式,在 JetBrains 工具的設定目錄中,放置一個 <Product>.jdk 的檔案,來指定欲使用的本地 JRE ,以 DataGrip 為例:

編輯一個 datagrip.jdk 檔案,裡面指定 JRE 的版本目錄所在位置:

/Library/Java/JavaVirtualMachines/openjdk.jdk

以自己的系統來說,上面這個目錄會指向 HomeBrew 安裝的 OpenJDK Runtime Environment Homebrew (build 21.0.1) 。

接著把 datagrip.jdk 這個檔案,放入 DataGrip 的設定目錄,由於目前使用的版本是 DataGrip 2023.3.1 ,所以設定目錄的路徑會是 ~/Library/Application\ Support/JetBrains/DataGrip2023.2:

~ mv datagrip.jdk ~/Library/Application\ Support/JetBrains/DataGrip2023.3

美好的結果

有沒有這麼好的事,經過替換 JRE 的版本之後, 結果是 JetBrains DataGrip 就起死回生啦,還不知道會碰到什麼問題,不過至少可以繼續寫些有的沒有的程式碼,至少也是一件美事囉,這個黑手方案分享給大家知道先!

參考資料

在〈iMac14.2 (27-inch, Late 2013) 使用 OpenCore Legacy Patcher 安裝 macOS Sonoma (14 ~ 14.2) 之後, 無法執行 JetBrains 開發工具的解決方案〉中有 1 則留言

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料