となりの日本家屋がスマートホームなわけがない

築70年の日本家屋を文化的に過ごすため、今流行りのスマートホーム化を施工した記憶領域。

自宅でできるRPA(準備編)

今回は自宅でできるRPAをご紹介します。

 

RPAとは「ロボティック・プロセス・オートメーション」の頭文字を取ったもので、ざっくり説明すると、ソフトウェアのロボットでアプリケーションを自動操作するといったもの。

昔風に荒く言うと、「Windowsで動くバッチ」と言った方が、伝わる人も多いのかもしれません。

 

ノンコーディング」というのがキーワードにあるようですが、ヤフオクの自動再出品マクロを「UWSC」とテキストエディタで組んでいた経験からすると、便利になったものだと感慨深いものです。

 

今回は準備編として、RPAソフトのセットアップを行います。

 

[目次]

   

使用するRPAソフト

今回使用するRPAソフトは「SikuliX」です。

 

このソフトを選んだ理由は次の3点です。

  1. 無償で使用できる。
  2. ライセンスが「MIT License」なので、商用利用ができる。
  3. スクリプトの条件に画像が使用できる。

画像を条件に使えるのは、UWSCでの経験が活かせると考えたから。また、無償で商用利用できるのは、職場の効率向上につながる大きなポイントでした。

 

RPAソフトの準備

SikuliXの動作には、Java環境が必要です。

Javaのインストール

公式サイトからJavaのランタイムソフトをダウンロードしてインストールするのが順当な手段ですが、公式サイトのランタイム(JavaSE)を商用利用する場合、ライセンス費用が発生します。この記事の執筆時点で、3,600円/本・年です。

f:id:a03:20200502152245j:plain

図1.JavaSEのお値段

お金を払って使う場合はオラクルストアで購入しても良いですが、今回は無償で使う方法を説明します。

それは、Oracleさんがオープンソースビルドで提供している「OpenJDK」を使用する方法です。

 

今回ダウンロードしたランタイムは、最新のJDK14ではなく、JDK12の64bitWindows版です。

https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_windows-x64_bin.zip

 

Zipファイルを解凍(正式には伸張)し、適当なフォルダに移動させておきます。

今回は「C:\WinAP\Jdk-12」としました。

 

なぜJDK12なのか

ちなみに、JDK14とSikuliXの組み合わせで起動させると、こちらの環境ではエラーが発生します。

C:\>C:\WinAP\jdk-14\bin\java.exe -jar C:\WinAP\SikuliX\sikulixide-2.0.4.jar
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9dbe6f74a, pid=11660, tid=12580
#
# JRE version: OpenJDK Runtime Environment (14.0+36) (build 14+36-1461)
# Java VM: OpenJDK 64-Bit Server VM (14+36-1461, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f74a]

 

バージョンを下げて、JDK13とSikuliXの組み合わせで起動させても、同じようなエラーが発生します。

C:\>C:\WinAP\jdk-13\bin\java.exe -jar C:\WinAP\SikuliX\sikulixide-2.0.4.jar
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9dbc8f98a, pid=12328, tid=12376
#
# JRE version: OpenJDK Runtime Environment (13.0+33) (build 13+33)
# Java VM: OpenJDK 64-Bit Server VM (13+33, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f98a]

 

「0xc0000005」。またこいつかと思う値です。例外です。VCで開発していたとき、お世話になったヤツです。

ネットを調べると同じようなエラーで苦労されている方が全世界に見受けられます。どうやらJDK14と13のawt.dllには不具合があるようです。素直にJDK12にするか、もしかしたら、有償のJavaSEだと不具合が解消されているかもしれませんのでそちらを選択しましょう。

 

SikuliXのインストール

続いてSikuliXをダウンロードします。

https://launchpad.net/sikuli/sikulix/2.0.4/+download/sikulixide-2.0.4.jar

 

最後にJythonをダウンロードします。これがないとIDE統合開発環境)でPythonが使えません。

https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.1/jython-standalone-2.7.1.jar

 

上記のリンクはバージョンアップなどにより使えなくなる可能性がありますので、その場合はSikuliXの公式ページから辿るようにしてください。

 

ダウンロードしたファイルも適当なフォルダに移動させます。

 今回は「C:\WinAP\SikuliX」に移動させました。

 

起動してみよう

ダウンロードとフォルダへの格納が済んだら、ショートカットを作成します。

今回は下記のショートカットを作成しました。

「C:\WinAP\jdk-12\bin\java.exe -jar "C:\WinAP\SikuliX\sikulixide-2.0.4.jar"」

 

f:id:a03:20200502160905j:plain
f:id:a03:20200502174000j:plain
図2.起動用ショートカット

 

ショートカットをダブルクリックしてしばらくすると、SikuliXの画面が表示されます。

f:id:a03:20200502174514j:plain

図3.SikuliXの起動画面

 

まとめ 

 以上でSikuliXでRPAをする準備が整いました。次回は実際にスクリプトを作ってみましょう。