通知を受け取る

UiPath Studio

UiPath Studio ガイド

Java 向け拡張機能

サポートされるバージョン

現在、Java 拡張機能は、Java 3 から Java 17 までの任意のバージョンの JRE に対応しています。

📘

注:

Java 9+ の場合、UiPath Java 拡張機能は、Java JDK でアプリケーションを開いた Windows Enterprise および非 Enterprise エディションで動作します。Java JRE で開かれたアプリケーションの場合、UiPath Java 拡張機能は非エンタープライズ Windows エディションでのみ機能します。詳細については、「Java 拡張機能のトラブルシューティングガイド」をご覧ください。

Studio およびコマンド ラインから

次の手順で UiPath Java 拡張機能をインストールします。

  • Studio から
    1. 実行中の Java アプリケーションをすべて終了します。
    2. Studio を開きます。
    3. [ツール] > [UiPath 拡張機能] に移動します。
    4. [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 コントロール向けに生成されたセレクターによって、拡張機能が適切にインストールされているかどうかを確認できます。

<wnd app=”...” /><java role=”...” />
<wnd app=”...” /><ctrl role=”client” />

📘

注:

UiPath Java 拡張機能は、AWT アプリ (Java Swing、Oracle Forms、Fujitsu JBK など) にのみ対応しており、SWT アプリは、Active Accessibility で自動化されます。Java アプリケーションの種類を検出するには、UI Explorer の cls 属性 (ウィンドウ クラス名) を確認します。クラス名は、SunAwtFrame または javax.swing のようになっているはずです。

プロセスは、その DPI スケーリングに関係なく、Java アプリケーションを操作できます。

UiPath Java 拡張機能のインストールは、ScreenScrapeJavaSupport ツールを使用して行うこともできます。

🚧

警告

Studio (および ScreenScrapeJavaSupport) に埋め込まれた Java 拡張機能のインストーラーでは、拡張機能のメカニズムを使用して、JRE により拡張機能が読み込まれます。Java 9 以降、拡張機能のメカニズムは廃止されました。そのため、インストーラーは必要なファイルを JRE に追加できません (詳しくは、こちらをご覧ください)。

既定のインジェクション メカニズムのサポートにより、インストーラーは必要なファイルを JRE に追加できます。必要なファイルが追加されず、Java アプリケーションが Java 9 以降を使用している場合は、こちらに記載されている手順に従ってください。

インジェクション メカニズム

Java アプリケーションでセレクターを指定または検証しようとすると、ロボットは拡張機能ファイルが対象のアプリケーション プロセスに読み込まれているかどうかを確認します。

拡張機能ファイルは、さまざまなメカニズムを使用して読み込まれます。

  • JRE に拡張機能をインストールすることによって (Java 3 から 8 の場合)
  • カスタム フォルダーから読み込むことによって (Java 3 から 17 の場合、Java 9 以降では手順が異なります)

拡張機能ファイルが存在しない場合は、ブリッジの開始を試行するインジェクション メカニズムが使用されます。

これまで、インジェクション メカニズムにはいくつかの問題があり、すべてのケースで機能するわけではありませんでした。しかし、UIAutomation 22.2 では、インジェクション メカニズムの信頼性が向上し、OWS や IcedTea-Web などのサードパーティ アプリケーションで起動される .jnlp アプリケーションなど、以前は自動化できなかったアプリケーションを自動化できるようになりました。

これまで、Java 9 以上で起動されるアプリケーションでは、カスタム フォルダーから拡張機能を読み込むという方法が主として使用されていました。今後はこの方法は二次的な手段となり、インジェクション メカニズムが主に使用されるようになります。

カスタム フォルダーに拡張機能をインストールする

Java 8 以前


UiPath Java 拡張機能のインストール場所をカスタマイズするには、以下の手順を実行する必要があります。

  1. UiPath Java 拡張機能をインストールするマシン上に新しいフォルダーを作成し (例: C:\UiPathJavaExt)、そこに次のファイルをコピーします。
    1.1. UiPathBridge.jar - %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport ディレクトリにあります。
    1.2. UiPathJavaBridgeV8.dllUiPathJavaBridgeV8_x64.dll - %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath ディレクトリにあります。両方のファイルをコピーする必要はありませんが、両方コピーすることで JRE と UiPathJavaBridge 間のバージョンの不適合によって発生する恐れのある問題を予防できます。
  2. UiPath が拡張機能をインストールするときに使用する Java 拡張機能セットアップ メカニズムでは、Java のインストール ディレクトリ (通常は C:\Program Files (x86)\Java\jre1.8.0_xx) に、UiPathBridge.jaraccessibility.properties ファイルをデプロイします。カスタム フォルダーから UiPath Java 拡張機能を使用するには、次の手順に従い、これらのファイルの依存関係を緩める必要があります。
    2.1. UiPathBridge.jar ファイルについては、拡張機能を使用する Java アプリケーションを開始する際に、UiPathBridge.jar および UiPathJavaBridgev8.dll ファイルをコピーしたフォルダー (C:\UiPathJavaExt など) を指定する必要があります。-Djava.ext.dirs = C:\UiPathJavaExt 引数を使用して指定します。
    2.2. accessibility.properties ファイルについては、2 つの方法があります。
    • %userprofile% ディレクトリにある、グローバル設定ファイル accessibility.propertiesassistive_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 アプレットに渡すには、次のいずれかの方法を使用します。

  1. appletviewer.exe アプリケーションを使用する

この方法では、はじめに %userprofile% フォルダー内に .java.policy ファイルを作成し、そこに以下の記述を含める必要があります。

grant { 

    permission java.net.URLPermission "url_of_the_Java_applet", "*:*"; 

};

それが完了したら、対象のアプレットを次のコマンドとともに 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

  1. JRE で提供される Java コントロール パネルを使用します。

Java コントロール パネルでは、登録した JRE ごとにランタイム パラメーターを指定できます。そのため、対象のアプレットに
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
パラメーターを指定する必要があります。これにより、Java アプレットが起動するたびに UiPath Java 拡張機能が読み込まれるようになります。

下表は、上記の方法がサポートされている Java のバージョンとJava アプリケーションの種類を示したものです。

Application Type_JAVA_OPTIONSJAVA_TOOL_OPTIONSCommand Line ParametersJava Control Panel - Runtime Parameters
Java Desktop ApplicationJava 3 to Java 8Java 5 to Java 8Java 3 to Java 8Not Supported
Java Contained Application (.exe)Java 3 to Java 8Java 5 to Java 8Java 3 to Java 8 (1)Not Supported
Java AppletJava 3 to Java 8Java 5 to Java 8Not SupportedJava 3 to Java 8
Java Oracle FormsNot SupportedNot SupportedNot SupportedNot Supported

(1) - 使用するコマンド ライン ツールによっては、環境変数を介して他にもパラメーターを渡す必要が生じる場合があります。

Java 9 以降


Starting with Java 9, the Java Extension Mechanism is removed, which means that the -Djava.ext.dirs argument can not be used on Java 9 and greater applications.

拡張機能を読み込むには、以下の 3 つの要件を満たす必要があります。

  1. UiPathBridge.jar および UiPathServiceProvider.jar をアプリケーションのクラスパスに追加します。
  2. UiPathJavaBridgeV8.dll および UiPathJavaBridgeV8_x64UiPathBrdige.jar に表示されるようにします。その方法は、以下のようにいくつかあります。
  • ファイルを UiPathBridge.jar と同じフォルダーに配置
  • ファイルを UiPathBridge.jar が配置されているフォルダーより上のフォルダーに配置
  • 2 つのファイルを同じフォルダーに追加して、そのパスを環境変数 UIPATH_JB_PATH を使用して参照
    両方のファイルを参照する必要はありませんが、両方参照することで、JRE と UiPath Java Bridge 間のバージョンの不適合によって発生する恐れのある問題を防ぐことができます。
  1. 支援技術を読み込むアプリケーションを設定します。それには、JRE 内に配置されている accessibility.properties ファイルを使用します。

📘

注:

UiPathJavaServiceProvider.jar ファイルは、最新の UiPath.UIAutomation.Activities パッケージ (21.2-preview より新しいバージョン) で利用できます。古いバージョンの UIAutomation パッケージを使用している場合は、空のワークフロー ファイルを 21.2-preview に一時的にアップグレードすれば、ファイルを取得できます。そうすると、新しいバージョンの UiPath.nuget パッケージがユーザーのマシン (%UserProfile%\.nuget\packages\uipath) に解凍されます。ファイルの取得後、パッケージのアップグレード前に使用していたバージョンにダウングレードできます。

上記の要件を満たせるかどうかは、Java アプリケーションの起動方法によって異なります。アプリケーションを起動して拡張機能を読み込むには、3 つの一般的な方法があります。

.jar.bat、または .ps1 ファイルから開始されるアプリケーション

ここでは、java -jar SwingSet2.jar コマンドを使用して簡単な .jar ファイルから直接アプリを起動する方法について説明します。
以下の手順を実行する必要があります。

  1. 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. 手順 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. クラスパスからファイルを読み込むには、実行可能ファイルが読み込む環境変数や、依存関係の読み込み場所を指定する設定ファイルを検索します。その方法は 1 つだけではなく、実行可能ファイルのカスタマイズのレベルにより大きく異なってきます。
  2. この場合は、支援技術を拡張機能インストーラーと同様の方法で指定できます。標準の accessibility.properties ファイルを %UserProfile% フォルダーに移動して、名前を .accessbility.properties に変更できます。

.jnlp ファイルから開始されるアプリケーション

Starting with UiAutomation v22.2, interacting with .jnlp type applications is done by default due to an upgrade of the existing injection mechanism.

アプリケーション スケーリングのサポート

パラメーターにより、Java 9 以降のアプリケーションでスケーリングが完全にサポートされます。スケーリングのサポートを有効化するために、自動化する Java アプリケーションに以下のパラメーターを追加することを検討してください。

  • sun.java2d.uiScale.enabled - 未使用の場合または「true」の正確な文字列値に設定されている場合は true と見なされ、以下のスケーリング設定が考慮されます。「true」以外の値 (TruefalseFalseabc など) に設定すると、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 つすべてのパラメーターが設定されている場合は、これらの値だけが考慮されます。

約 1 か月前に更新

Java 向け拡張機能


改善の提案は、API リファレンスのページでは制限されています

改善を提案できるのは Markdown の本文コンテンツのみであり、API 仕様に行うことはできません。