事象
SikuliXをダウンロードし「sikulix-2.0.3.jar」を実行しようとエクスプローラからクリックするもhs_err_pidXXXX.logを同ディレクトリに吐いて起動に失敗する。
以下は当ログファイルの一部抜粋。
# # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffa32fdfa16, pid=1644, tid=5328 # # JRE version: OpenJDK Runtime Environment (11.0.6+10) (build 11.0.6+10) # Java VM: OpenJDK 64-Bit Server VM (11.0.6+10, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [awt.dll+0x8fa16] # ... --------------- S U M M A R Y ------------ Command Line: --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED -Dnashorn.args=--no-deprecation-warning -Dfile.encoding=UTF-8 -Dsikuli.IDE_should_run org.sikuli.ide.SikulixIDE ...
原因/対応策
ログファイルを見ると以下のようにJREに問題があるとのこと。
# A fatal error has been detected by the Java Runtime Environment:
利用しているバージョンは以下。
PS > java -version openjdk version "11.0.6" XX OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)
今回、別のバージョンのJREもインストールしてあったので
'C:\...\jre\bin\java.exe' -version java version "1.8.0_211" ...
そのバージョンをコマンドから明示的に指定して起動すると実行できた。
PS> & 'C:\...\jre\bin\java.exe' -jar C:\sikulix\sikulix-2.0.3.jar
起動したSikuliXは以下。
おまけ
32bit版のJavaを指定すると以下のようにエラーになります。
Exception in thread "main" org.sikuli.script.SikuliXception: fatal: Java arch must be 64 Bit (java 8 version 1.8 vm 25.161-b12 class XX arch null) at org.sikuli.script.support.RunTime.get(RunTime.java:952) at org.sikuli.ide.SikulixIDE.main(SikulixIDE.java:99) at org.sikuli.ide.Sikulix.main(Sikulix.java:14)
以上、同事象が発生した方のご参考になれば幸いです。