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版)をダウンロードして実行しようとすると、以下のエラーが出てしまった。
原因がわからず困っていた。調査したところ、解決できたので今後のために記す。
まず、根本的な原因は、ダウンロードしたソフトウェアの対応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件のコメントがあります。