2019年7月12日金曜日

LT-R6のOpenJDK対応(Windows10+OpenJDKでのjSSCのクラッシュ対応)

LT-R6をJAVAライセンスに問題の生じないOpenJDK12でコンパイル・実行してみた。
(やり方は別途報告する)

編集機能は問題なく動いたがCOMポート選択などCI-V通信(すなわちjSSC)に関わる機能を使おうとすると必ずJVM(JAVA仮想マシン)がクラッシュする。
ネット検索してみるとOpenJDK11以後Windows10上のjSSC 2.8.0は権限違反(access violation)でクラッシュするとレポートされている。
Win10ではjSSCに必要なDLLが無いとの他のレポートもあるが定かでない。

本当の原因は別として何らかの対応は必要である。
通信ライブラリーは、過去にバグのあるRXTXライブラリーからjSSCライブラリーに乗り換えたがjSSCも2014年のjSSC 2.8.0を最後にアップデートされていない。

ネットで色々調べると有志が新しいバージョン(jSSC 2.9.1、2019年5月30日付け!!)をGitHubで提供しているようだ。

 これをダウンロードしてみると従来の2.8.0のファイルサイズが150KBであるのに対し2.9.1は411KBとかなり大きくなっている。何が違うのだろう?
そこでダメ元でこれを使ってみると、CI-Vは正常に機能するようになった。「LT-R6について」の表示(一部)は次のようになった。

ネットで調べるとこのほかにも幾つかのフリー通信モジュールが提供されているようなので、リスク管理の意味からも今後試してみたいものである。