- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- ST-DBP-002 - 多数の引数
- ST-DBP-003 - 空の catch ブロック
- ST-DBP-007 - 複数のフローチャートレイヤー
- ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
- ST-DBP-020 - 未定義の出力プロパティ
- ST-DBP-021 - ハードコードされたタイムアウト
- ST-DBP-023 - 空のワークフロー
- ST-DBP-024 - 永続性アクティビティの確認
- ST-DBP-025 - 変数のシリアル化の前提条件
- ST-DBP-026 - [待機] アクティビティの使用
- ST-DBP-027 - Persistence のベスト プラクティス
- ST-DBP-028 - 引数のシリアル化の前提条件
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix Technologies Automation
- RDP の自動化
- VMware Horizon の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- macOS の UI Automation
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- 拡張機能
- Test Suite - Studio
- トラブルシューティング
Java 向け拡張機能
Java 拡張機能は、Java 3 から Java 17 までの任意のバージョンの JRE に対応しています。
Java アプリケーションでセレクターを指定または検証しようとすると、ロボットは拡張ファイルが対象のアプリケーション プロセスに読み込まれているかどうかを確認します。
拡張機能ファイルは、さまざまなメカニズムを使用して読み込まれます。
- 拡張機能メカニズムを介して JRE (Java 3 ~ 8 の場合) に拡張機能をインストールする。
- カスタム フォルダーから読み込む (Java 3 から 17 の場合、Java 9 以降では手順が異なります。)
拡張ファイルが存在しない場合は、インジェクション メカニズムを使用してブリッジの起動を試みます。
Studio (および ScreenScrapeJavaSupport ツール) に埋め込まれた Java 拡張機能インストーラーは、拡張機能のメカニズムを使用して JRE により拡張機能を読み込むため、Java 3 ~ 8 で実行される Java ベースのアプリケーションの自動化に使用できます。
Java 9 以降、拡張機能のメカニズムは非推奨となりました。そのため、インストーラーは必要なファイルを JRE に追加できません。これらのファイルは、カスタム フォルダーから読み込む必要があります (詳しくは、こちらをご覧ください)。
UI Automation パッケージのバージョン 22.2.0-preview より、既定の インジェクション メカニズムのサポートにより、Java ベースのアプリケーションを自動化するために Java 拡張機能のインストールが必須ではなくなりました。
You should install the Java extension from Studio or the command line only when the injection mechanism does not work, and when Java applications are using Java 3 to 8. For Java applications using Java 9 or greater, follow the steps described in Installing the extension in a custom folder.
UiPath.UIAutomation.Activities バージョン 22.2.0-preview までは、すべてのケースでインジェクション メカニズムが機能しませんでした。 Java 9 以上で起動されるアプリケーションでは、カスタム フォルダーから拡張機能を読み込むという方法が主として使用されていました。
.jnlp
アプリケーションなど、以前は自動化できなかったアプリケーションを自動化できるようになりました。
既定では、インジェクション メカニズムが使用され、Java 拡張機能のインストールはバックアップの方法としてのみ使用する必要があります。
次の手順で UiPath Java 拡張機能をインストールします。
Studio から
- 実行中の Java アプリケーションをすべて終了します。
- Studio を開きます。
- [ツール] > [UiPath 拡張機能] に移動します。
- [Java] > [インストール] を選択します。拡張機能がインストールされたことを示す確認メッセージが表示されます。
コマンド ラインから
C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java
コマンドを実行します。
Studio と UI Explorer は、Java アプリ内でコントロールを選択しようとしたときにブリッジが検出されないと UiPath Java 拡張機能をインストールするように要求します。UI Explorer によってプロンプトが表示されたときに UiPath 拡張機能をインストールすることを選択すると、Java Bridge ファイルは JDK ディレクトリではなく対象の Java アプリケーションを起動した JRE ディレクトリにのみデプロイされます。
拡張機能が正しく動作していないかどうかを確認するには、UI Explorer を開き、Java アプリケーション内のコントロールを選択してください。ウィンドウ全体が選択されている場合は、拡張機能が正しく機能していないことを意味しています。
Java コントロール向けに生成されたセレクターによって、拡張機能が適切にインストールされているかどうかを確認できます。
- Java コントロールの有効なセレクター:
<wnd app=”...” /><java role=”...” />
- Java コントロールの無効なセレクター:
<wnd app=”...” /><ctrl role=”client” />
cls
属性 (ウィンドウ クラス名) を確認します。クラス名は、SunAwtFrame
または javax.swing
のようになっているはずです。
プロセスは、その DPI スケーリングに関係なく、Java アプリケーションを操作できます。
UiPath Java 拡張機能のインストールは、ScreenScrapeJavaSupport ツールを使用して行うこともできます。
UiPath Java 拡張機能のインストール場所をカスタマイズするには、以下の手順を実行します。
-
UiPath Java 拡張機能をインストールするマシン上に新しいフォルダーを作成し (例:
C:\UiPathJavaExt
)、そこに次のファイルをコピーします。UiPathBridge.jar
-%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
ディレクトリにあります。UiPathJavaBridgeV8.dll
およびUiPathJavaBridgeV8_x64.dll
は%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath
ディレクトリにあります。両方のファイルをコピーする必要はありませんが、両方コピーすることで、JRE と UiPath Java Bridge 間のバージョンの不適合によって発生する恐れのある問題を予防できます。
-
UiPath が拡張機能をインストールするときに使用する Java 拡張機能セットアップ メカニズムでは、Java のインストール ディレクトリ (通常は
C:\Program Files (x86)\Java\jre1.8.0_xx
) に、UiPathBridge.jar
とaccessibility.properties
ファイルをデプロイします。カスタム フォルダーから UiPath Java 拡張機能を使用するには、次の手順に従い、これらのファイルの依存関係を緩める必要があります。UiPathBridge.jar
ファイルについては、拡張機能を使用する Java アプリケーションを開始する際に、UiPathBridge.jar
およびUiPathJavaBridgev8.dll
ファイルをコピーしたフォルダー (C:\UiPathJavaExt
など) を指定する必要があります。-Djava.ext.dirs = C:\UiPathJavaExt
引数を使用して指定します。-
accessibility.properties
ファイルについては、次の 2 つの方法があります。%userprofile%
ディレクトリにある、グローバル設定ファイルaccessibility.properties
にassistive_technologies=UiPath.UiPathBridge
パラメーターを追加します。このファイルは、UiPath Java 拡張機能によってデプロイされるものとは異なり、その設定は Java のインストールによる設定よりも優先されることに注意してください。- 対象の Java アプリケーションを実行するときに、引数
-Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
を使用します。
システム プロパティを適切に対象の Java アプリケーションに渡す必要があります。それには、いくつかの方法があります。
_JAVA_OPTIONS
環境変数に、-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
システム プロパティを含めます。JRE が環境変数のプロパティ、および対象のアプリケーションに読み込まれた UiPath Java 拡張機能のプロパティを読み込みます。- コマンド プロンプトで
C:\Program Files (x86)\Java\jre1.8.0_xx\bin\java.exe -Djavax.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge -jar SwingSet2.jar
コマンドを使用します。UiPath Java 拡張機能が正常に読み込まれたことを確認するメッセージが表示されます。 JAVA_TOOL_OPTIONS
環境変数に、-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
システム プロパティを含めます。この方法は、Java 5 以降にしか使用できないことに注意してください。
プロパティを Java アプレットに渡すには、次のいずれかの方法を使用します。
-
appletviewer.exe
アプリケーションを使用するこの方法では、はじめに%userprofile%
フォルダー内に.java.policy
ファイルを作成し、そこに以下の記述を含める必要があります。grant { permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; };
grant { permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; };それが完了したら、対象のアプレットを次のコマンドとともにappletviewer.exe
から起動する必要があります。C:\Program Files (x86)\Java\jre1.8.0_xx\bin\appletviewer.exe -J-Djava.ext.dirs=C:\UiPathJavaExt -J-Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge url_of_the_java_applet
-
JRE で提供される Java コントロール パネルを使用します。
Java コントロール パネルでは、登録した JRE ごとにランタイム パラメーターを指定できます。そのため、対象のアプレットに
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
パラメーターを指定する必要があります。これにより、Java アプレットが起動するたびに UiPath Java 拡張機能が読み込まれるようになります。
下表は、上記の方法がサポートされている Java のバージョンとJava アプリケーションの種類を示したものです。
アプリケーションの種類 |
_JAVA_OPTIONS |
JAVA_TOOL_OPTIONS |
コマンド ライン パラメーター |
Java コントロール パネル - ランタイム パラメーター |
---|---|---|---|---|
Java デスクトップ アプリケーション |
Java 3 から Java 8 |
Java 5 から Java 8 |
Java 3 から Java 8 |
サポートされません |
Java を含むアプリケーション (
.exe )
|
Java 3 から Java 8 |
Java 5 から Java 8 |
Java 3 から Java 8 (
1 )
|
サポートされません |
Java アプレット |
Java 3 から Java 8 |
Java 5 から Java 8 |
サポートされません |
Java 3 から Java 8 |
Java Oracle フォーム |
サポートされません |
サポートされません |
サポートされません |
サポートされません |
1
) - 使用するコマンド ライン ツールによっては、環境変数を介して他にもパラメーターを渡す必要が生じる場合があります。
-Djava.ext.dirs
引数を使用できないことを意味します。
拡張機能を読み込むには、以下の 3 つの要件を満たす必要があります。
UiPathBridge.jar
およびUiPathServiceProvider.jar
をアプリケーションのクラスパスに追加します。-
UiPathJavaBridgeV8.dll
およびUiPathJavaBridgeV8_x64
がUiPathBrdige.jar
に表示されるようにします。その方法は、以下のようにいくつかあります。- ファイルを
UiPathBridge.jar
と同じフォルダーに配置 - ファイルを
UiPathBridge.jar
が配置されているフォルダーより上のフォルダーに配置 -
2 つのファイルを同じフォルダーに追加して、そのパスを環境変数
UIPATH_JB_PATH
を使用して参照両方のファイルを参照する必要はありませんが、両方参照することで、JRE と UiPath Java Bridge 間のバージョンの不適合によって発生する恐れのある問題を防ぐことができます。
- ファイルを
- 支援技術を読み込むアプリケーションを設定します。それには、JRE 内に配置されている
accessibility.properties
ファイルを使用します。注:UiPathJavaServiceProvider.jar
ファイルは、最新の UiPath.UIAutomation.Activities パッケージ (21.2-preview より新しいバージョン) で利用できます。古いバージョンの UI Automation パッケージを使用している場合は、空のワークフロー ファイルを 21.2-preview に一時的にアップグレードすれば、ファイルを取得できます。そうすると、新しいバージョンのUiPath.nuget
パッケージがユーザーのマシン (%UserProfile%\.nuget\packages\uipath
) に解凍されます。ファイルの取得後、パッケージのアップグレード前に使用していたバージョンにダウングレードできます。
上記の要件を満たせるかどうかは、Java アプリケーションの起動方法によって異なります。アプリケーションを起動して拡張機能を読み込むには、3 つの一般的な方法があります。
.jar
、.bat
、または .ps1
ファイルから開始されるアプリケーション
java -jar SwingSet2.jar
コマンドを使用して簡単な .jar
ファイルから直接アプリを起動する方法について説明します。以下の手順を実行する必要があります。
- UiPath Java 拡張機能をインストールするマシン上に新しいフォルダーを作成し (例:
C:\UiPathJavaExt
)、そこに次のファイルをコピーします。UiPathBridge.jar
およびUiPathJavaServiceProvider.jar
-%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
ディレクトリにあります。UiPathJavaBridgeV8.dll
およびUiPathJavaBridgeV8_x64.dll
-%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath
ディレクトリにあります。
- 手順 1 で作成したフォルダーを対象の Java アプリケーションのクラス パスに追加します。
-cp, -classpath
コマンドを使用して追加できます。この例では、対象の Java アプリケーションがSwingSet2
であるとします。C:\Program Files (x86)\Java\jre1.9.0_xx \bin\java.exe -cp SwingSet2.jar;C:\UiPathJavaExt\* -Djavax.accessibility.assistive_technologies=UiPathJavaServiceProvider SwingSet2
.bat
ファイルまたは .ps1
ファイルを使用して起動される場合、ファイルをテキスト エディターで分析する必要があります。アプリケーションを起動するファイルには、コマンド java -jar SwingSet2.jar
に似た行のほか、多くのパラメーターも含まれています。コマンドは変更可能であり、クラスパスにファイルを追加したり、支援技術のパラメーターを指定したりできます。なお、これらのファイル内の変更は慎重に行う必要があります。場合によっては、クラスパスと追加のパラメーターが環境変数から取得されることがあります。これは、より非侵略的な方法です。
.exe
ファイルから開始されるアプリケーション
exe
ファイルを使用してアプリを起動する場合は、別の方法でファイルをクラスパスに読み込み、支援技術のパラメーターを指定する必要があります。
- クラスパスからファイルを読み込むには、実行可能ファイルが読み込む環境変数や、依存関係の読み込み場所を指定する設定ファイルを検索します。その方法は 1 つだけではなく、実行可能ファイルのカスタマイズのレベルにより大きく異なってきます。
- この場合は、支援技術を拡張機能インストーラーと同様の方法で指定できます。標準の
accessibility.properties
ファイルを%UserProfile%
フォルダーに移動して、名前を.accessbility.properties
に変更できます。
.jnlp
ファイルから開始されるアプリケーション
.jnlp
の種類のアプリケーションとの対話が既定で行われます。
パラメーターにより、Java 9 以降のアプリケーションでスケーリングが完全にサポートされます。スケーリングのサポートを有効化するために、自動化する Java アプリケーションに以下のパラメーターを追加することを検討してください。
sun.java2d.uiScale.enabled
- 未使用の場合または「true」の正確な文字列値に設定されている場合は true と見なされ、以下のスケーリング設定が考慮されます。「true」以外の値 (True、false、False、abc など) に設定すると、false と見なされ、追加のスケーリング調整は行われません。-
sun.java2d.uiScale
- 値は以下の 3 つの形式で渡すことができます。- 率 (0.5、2.3、1.5)
- パーセンテージ (100%、150%)
- DPI 値 (96dpi、120dpi)。スケーリングが有効な場合に考慮されます。両方の軸でスケーリングを変更します。
sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY
-sun.java2d.uiScale
パラメーターと同様の形式で値を渡すことができます。どちらも Java アプリケーションで考慮される必要のある不可欠な値です。これらはスケーリングの一般的な設定よりも具体的な値であるため、3 つすべてのパラメーターが設定されている場合は、これらの値だけが考慮されます。