Eclipse系ソフト起動時のFailed to create the Java Virtual Machine.への対処

macOSの“XXX.app” is damaged and can’t be opened. You should move it to the Trash.への対処 – Kenchant」に続いて、M1 macOS 11 Big SurでEclipseベースのソフトウェアであるObeo Designer Community (intel CPU版)をダウンロードして実行しようとすると、以下のエラーが出てしまった。

Eclipseベースアプリの実行時エラー
Alert
Failed to create the Java Virtual Machine.

原因がわからず困っていた。調査したところ、解決できたので今後のために記す。

まず、根本的な原因は、ダウンロードしたソフトウェアの対応CPUがIntelなのに、ARMのJavaで実行してしまったのが問題だった。

調べたところ、「STS起動時の「failed to create the java virtual machine」 – Qiita」の情報が同じ問題かと思ったが、こちらでは解決しなかった。*.app/Contents/Eclipse/*.iniファイルに以下のようにIntel版Javaを明示的に指定すればよいかと思ったのだが、これでは解決しなかった。

-vm
/usr/local/opt/java/bin/java

こちらではなく、「Can’t install Eclipse – “Failed to create the Java Virtual Machine” on Mac – Stack Overflow
」で解決した。修正が必要だったのは、iniファイルではなく*.app/Contents/Info.plistだった。

cd *.app/Contents
patch -Np 0 <<-'EOT'
--- Info.plist.old 2022-07-05 23:22:48.000000000 +0900 +++ Info.plist 2022-07-05 23:40:56.000000000 +0900 @@ -58,10 +58,8 @@ <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options, or add a VM found via $/usr/libexec/java_home -V - <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string> - <string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/java</string> --> - + <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/bin/java</string> <string>-keyring</string>
EOT

上記のように、コメントアウトされている部分を復元して、intel版のjavaの絶対パスを指定する。arm版のJavaだと同じエラーが発生するので注意する。javaコマンドがintelかarmかは以下のコマンドでx86_64と表示されればintel版だと確認できる。

lipo -archs /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/bin/java
x86_64

Intel版のHomebrewでインストールしたJavaでもOKで、その場合の絶対パスは以下となる。

/usr/local/opt/java/bin/java

解決できてよかった。

Eclipse系ソフト起動時のFailed to create the Java Virtual Machine.への対処” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。