(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【SikuliX】jarを実行するもhs_err_pid.logを作成して起動しない

スポンサーリンク

事象

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は以下。

f:id:mtiit:20200304200940p:plain
インストールしたバージョンで起動

おまけ

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)

以上、同事象が発生した方のご参考になれば幸いです。