studio
2021.10
false
UiPath logo, featuring letters U and I in white
Studio 用户指南
Last updated 2024年9月23日

Java 版扩展程序

支持的版本

目前,Java 扩展程序与从 Java 3 到 Java 15 的 JRE 的任何版本都兼容。

注意:对于使用 Java JDK 打开的 Java 9+ 应用程序,UiPath Java 扩展程序适用于 Windows 企业版和非企业版。对于使用 Java JRE 打开的应用程序,UiPath Java 扩展程序仅适用于 Windows 非企业版。阅读《Java 扩展程序故障排除指南》,了解更多信息。

通过 Studio 和命令行

您可执行以下操作安装 UiPath Java 扩展程序:

  1. 首先,关闭任何正在运行的 Java 应用程序。启动 Studio,并访问 Studio 后台视图中的工具选项卡。系统将显示您可以安装的扩展程序。单击“Java 扩展程序”按钮。系统将显示一条确认消息,通知您已安装扩展程序。
  2. 在命令行提示符窗口中,使用管理员权限运行 C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java 命令。

当您尝试在 Java 应用程序中选择控件且系统未检测到网桥时,Studio 和用户界面探测器也会要求您安装 UiPath Java 扩展程序。请注意,如果您听从用户界面探测器的提示而选择安装 UiPath Java 扩展程序,Java 网桥文件将只会部署在启动目标 Java 应用程序的 JRE 目录,而非 JDK 目录中。

注意:要安装此扩展程序,您必须具有管理员权限。

要检查扩展程序是否正常工作,请打开用户界面探测器并尝试在 Java 应用程序中选择控件。如果选择了整个窗口,这意味着扩展程序不能正常工作。

您可以通过为 Java 控件生成的选取器来判断是否已正确安装扩展程序:
  • Java 控件的有效选取器:<wnd app=”...” /><java role=”...” />
  • Java 控件的无效选取器:<wnd app=”...” /><ctrl role=”client” />
注意:UiPath Java 扩展程序只能兼容 AWT 应用程序(例如 Java Swing、Oracle Forms、Fujitsu JBK),而 SWT 应用程序则是通过主动式辅助实现自动化。要检测 Java 应用程序的类型,请检查用户界面探测器中的 cls 属性(窗口类名)。类名应该类似于 SunAwtFramejavax.swing

流程可以与 Java 应用程序交互,无论其 DPI 缩放如何。

您还可使用 ScreenScrapeJavaSupport 工具安装 UiPath Java 扩展程序。

重要提示:

Studio 中嵌入的 Java 扩展程序安装程序(以及 ScreenScrapeJavaSupport)依赖于扩展机制,以便由 JRE 加载扩展程序。从 Java 9 开始,已弃用扩展机制,安装程序无法将必要的文件添加到 JRE(在此处查看更多信息)。

因此,如果 Java 应用程序使用的是 Java 9 或更高版本,则应遵循此处描述的步骤。

在自定义文件夹中安装扩展程序

对于 Java 8 或更低版本

若要在自定义位置安装 Java 的 UiPath 扩展程序,需要执行以下步骤:

  1. 在要安装适用于 Java 的 UiPath 扩展程序的计算机上创建一个新文件夹(如 C:\UiPathJavaExt),然后将以下文件复制到该文件夹:
    1. UiPathBridge.jar - 位于 %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport 目录中。
    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 文件。若要从自定义文件夹中使用适用于 Java 的 UiPath 扩展程序,则须减少对这些文件的依赖,如下所示:
    1. 对于 UiPathBridge.jar 文件,在启动使用扩展程序的 Java 应用程序时,需要指定复制 UiPathBridge.jarUiPathJavaBridgev8.dll 的文件夹(如 C:\UiPathJavaExt)。这是通过 -Djava.ext.dirs = C:\UiPathJavaExt 参数完成的。
    2. 对于 accessibility.properties 文件,有两种方法:
      • assistive_technologies=UiPath.UiPathBridge 参数添加到位于 %userprofile% 目录的全局配置文件 accessibility.properties 中。请注意,此文件与适用于 Java 的 UiPath 扩展程序所部署的文件不同,其设置优先于 Java 安装所设的设置。
      • 运行目标 java 应用程序时,请使用 -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge 参数。

系统属性需要正确传递到目标 Java 应用程序。这可以通过几种方法完成:

  • _JAVA_OPTIONS 环境变量中包括 -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge 系统属性。JRE 加载来自环境变量的属性和目标应用程序中加载的 Java 的 UiPath 扩展程序。
  • 在命令提示符中使用 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 命令。将显示一条确认消息,指出适用于 Java 的 UiPath 扩展程序已成功加载。
  • 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", "<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 Forms

不支持

不支持

不支持

不支持

(1) - 根据使用的命令行工具,可能需要通过环境变量传递其他参数。

对于 Java 9 或更高版本

从 Java 9 开始,将删除 Java 扩展机制,这意味着 -Djava.ext.dirs 参数不能用于 Java 9 和更高版本的应用程序。

加载扩展程序主要出于以下 3 个要求:

  1. UiPathBridge.jarUiPathServiceProvider.jar 添加到应用程序的类路径中。
  2. 使 UiPathJavaBridgeV8.dllUiPathJavaBridgeV8_x64UiPathBrdige.jar 可见。这可以通过多种方式完成:
    • 使用 UiPathBridge.jar 将文件放置在同一文件夹中;
    • 将文件放置在 UiPathBridge.jar 上方的文件夹中;
    • 将这两个文件添加到文件夹中,并通过名为 UIPATH_JB_PATH 的环境变量引用其路径;

      不一定要引用这两个文件,但这可以防止由于 JRE 和 UiPathJavaBridge 之间版本不匹配所引致的问题。

  3. 配置应用程序以加载辅助技术。这是通过放置在 JRE 中的 accessibility.properties 文件完成的。
    注意:UiPathJavaServiceProvider.jar 文件位于最新的 UiPath.UIAutomation.Activities 包(21.2 预览版以上版本)中。如果您使用的是较低版本的 UIAutomation,则可以通过将空的工作流文件临时升级到 21.2 预览版来获取文件。这将导致 UiPath.nuget 包的较新版本解压缩到用户计算机 (%UserProfile%\.nuget\packages\uipath)。获取文件后,可以将包降级为升级前使用的版本。

是否满足上述要求直接取决于 Java 应用程序的启动方式。启动应用程序和加载扩展程序的常见方式有 3 种。

.jar.bat.ps1 文件启动的应用程序

我们来考虑一个简单的情况,即直接从简单的 .jar 文件启动应用程序:java -jar SwingSet2.jar

需要执行以下步骤:

  1. 在要安装适用于 Java 的 UiPath 扩展程序的计算机上创建一个新文件夹(如 C:\UiPathJavaExt),然后将以下文件复制到该文件夹:
    • UiPathBridge.jarUiPathJavaServiceProvider.jar - 位于 %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport 目录中。
    • UiPathJavaBridgeV8.dllUiPathJavaBridgeV8_x64.dll - 位于 %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath 目录中。
  2. 将以前创建的文件夹添加到目标 Java 应用程序的类路径。此操作使用 -cp, -classpath 命令完成。对于此示例,我们将 SwingSet2 视为目标 Java 应用程序:

    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. 要从类路径加载文件,您可以搜索可执行程序读取的环境变量或指定依赖项加载位置的配置文件。这里没有标准,这在很大程度上取决于可执行文件的自定义级别。
  2. 在这种情况下,可以通过与扩展程序安装程序类似的方式指定辅助技术。可将标准 accessibility.properties 文件移动到 %UserProfile% 文件夹,并将其重命名为 .accessbility.properties

.jnlp 文件启动的应用程序

通过 .jnlp 文件启动应用程序时,必须考虑以下因素:
  1. 要加载 UiPathBridge,jarUiPathServiceProvider.jar,必须将它们作为依赖项添加到 .jnlp 文件中。这将使服务器提供新的 .jnlp 文件,而不是编辑现有文件。
  2. 这两个 .dll 文件也可以在 .jnlp 文件中加载,也可以通过 UIPATH_JB_PATH 环境变量进行引用,如上所述。
  3. 也可以将 assistive_technology 属性添加到 .jnlp 文件中,或者将 accessibility.properties 文件放置在 %UserProfile% 中。

应用程序扩展支持

通过参数,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 个参数,则仅考虑这些参数。

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。