- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- 診断ツール
- ワークフロー アナライザー
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- 制御フロー
- オブジェクト リポジトリ
- ログ
- ScreenScrapeJavaSupport ツール
- Studio でのテスト
- 拡張機能
- トラブルシューティング
Studio で UiPath Java 拡張機能をインストールして設定し、JRE バージョン 3 から 24 にわたってネイティブ セレクターを生成できるようにします。
サポートされているバージョン
Java 拡張機能は、Java 3 から Java 24 までの任意のバージョンの JRE に対応しています。
Java アプリケーションでセレクターを指定または検証しようとすると、ロボットは拡張ファイルが対象のアプリケーション プロセスに読み込まれているかどうかを確認します。
拡張機能ファイルは、さまざまなメカニズムを使用して読み込まれます。
- 拡張機能メカニズムを介して JRE (Java 3 ~ 8 の場合) に拡張機能をインストールする。
- カスタム フォルダーから読み込む (Java 3 から 17 の場合、Java 9 以降では手順が異なります。)
拡張ファイルが存在しない場合は、インジェクション メカニズムを使用してブリッジの起動を試みます。
The Java Extension installer embedded in Studio (and also the ScreenScrapeJavaSupport tool) relies on the extension mechanism to have the extension loaded by the JRE, so it can be used for automating Java-based applications running with Java 3 to 8. Starting with Java 9, the extension mechanism has been deprecated and the installer is not able to add the necessary files to the JRE. These files must be loaded from a custom folder (more info here).
Starting with UIAutomation package version 22.2.0-preview, with the support of the default injection mechanism, it is no longer mandatory to install the Extension for Java for automating Java-based applications. 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 以上で起動されるアプリケーションでは、カスタム フォルダーから拡張機能を読み込むという方法が主として使用されていました。
UiPath.UIAutomation.Activities バージョン 22.2.0-preview より、インジェクション メカニズムの信頼性が向上し、OWS や IcedTea-Web などのサードパーティ アプリケーションで起動される .jnlp アプリケーションなど、以前は自動化できなかったアプリケーションを自動化できるようになりました。
既定では、インジェクション メカニズムが使用され、Java 拡張機能のインストールはバックアップの方法としてのみ使用する必要があります。
Studio またはコマンド ラインから JRE に拡張機能をインストールする
Java 8 以前
次の手順で 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” />注:プロセスは、その DPI スケーリングに関係なく、Java アプリケーションを操作できます。UiPath Java 拡張機能は、AWT アプリ (Java Swing、Oracle Forms、Fujitsu JBK など) にのみ対応しており、SWT アプリは、Active Accessibility で自動化されます。Java アプリケーションの種類を検出するには、UI Explorer の
cls属性 (ウィンドウ クラス名) を確認します。クラス名は、SunAwtFrameまたはjavax.swingのようになっているはずです。
UiPath Java 拡張機能は、 ScreenScrapeJavaSupport ツールを使用してインストールすることもできます。
Java 9 以降
次のセクションで説明するように、カスタム フォルダーへのインストールを使用します。
カスタム フォルダーに拡張機能をインストールする
Java 8 以前
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 2.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) - 使用するコマンド ライン ツールによっては、環境変数を介して他にもパラメーターを渡す必要が生じる場合があります。
Java 9 以降
Java 9 以降、Java 拡張機能のメカニズムは廃止されました。これは、Java 9 以降のアプリケーションでは、-Djava.ext.dirs 引数を使用できないことを意味します。
拡張機能を読み込むには、以下の 3 つの要件を満たす必要があります。
-
UiPathBridge.jarおよびUiPathServiceProvider.jarをアプリケーションのクラスパスに追加します。 -
UiPathJavaBridgeV8.dllとUiPathJavaBridgeV8_x64.dllをUiPathBridge.jarに対して見えるようにします。これは、以下で説明するように、さまざまな方法で行うことができます。両方のファイルを参照する必要はありませんが、JRE と UiPath Java Bridge のバージョンの不一致が原因で発生する可能性のある問題を防ぐことができます。- ファイルを
UiPathBridge.jarと同じフォルダーに配置 - ファイルを
UiPathBridge.jarが配置されているフォルダーより上のフォルダーに配置 - 2 つのファイルを同じフォルダーに追加して、そのパスを環境変数
UIPATH_JB_PATHを使用して参照
- ファイルを
-
支援技術を読み込むアプリケーションを設定します。それには、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
If the application is started via a .bat or a .ps1 file, then the file must be analyzed with a text editor. The file that starts the application contains a line similar to the command java -jar SwingSet2.jar, but also includes many other parameters. The command can be changed to include the files in the classpath and to specify the assistive technology parameter.
Changes inside those files should be done with caution. In some cases, the classpath and the additional parameters are picked from environment variables, which is a less invasive method.
.exe ファイルから起動アプリケーション
exe ファイルを使用してアプリを起動する場合は、別の方法でファイルをクラスパスに読み込み、支援技術のパラメーターを指定する必要があります。
- クラスパスからファイルを読み込むには、実行可能ファイルが読み込む環境変数や、依存関係の読み込み場所を指定する設定ファイルを検索します。その方法は 1 つだけではなく、実行可能ファイルのカスタマイズのレベルにより大きく異なってきます。
- この場合は、支援技術を拡張機能インストーラーと同様の方法で指定できます。標準の
accessibility.propertiesファイルを%UserProfile%フォルダーに移動して、名前を.accessbility.propertiesに変更できます。
.jnlp ファイルから起動アプリケーション
UI Automation v22.2 より、既存のインジェクション メカニズムがアップグレードされたため、.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 つすべてのパラメーターが設定されている場合は、これらの値だけが考慮されます。