Abonnieren

UiPath Studio

UiPath Studio-Anleitung

Erweiterung für Java

Unterstützte Versionen

Currently, the Java Extension is compatible with any version of JRE's, from Java 3 to Java 17.

📘

Hinweis:

Für Java 9 und höhere Versionen funktioniert die UiPath-Erweiterung für Java in Windows Enterprise-Editionen sowie anderen Windows-Editionen als Enterprise, bei denen Anwendungen mit dem JDK geöffnet werden. Für Anwendungen, die mit der Java-Laufzeitumgebung geöffnet werden, funktioniert die UiPath-Erweiterung für Java nur in anderen Windows-Editionen als Enterprise. Weitere Informationen finden Sie im Leitfaden zur Problembehandlung für die Java-Erweiterung.

Über Studio und die Befehlszeile

Die UiPath-Erweiterung für Java wird folgendermaßen installiert:

  • Aus Studio
    1. Schließen Sie alle geöffneten Java-Anwendungen.
    2. Öffnen Sie Studio.
    3. Navigate to Tools > UiPath Extensions.
    4. Select Java > Install. A confirmation message appears, informing you that the extension has been installed.
  • From the command line:
    • Führen Sie diesen Befehl C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java in einem Eingabeaufforderungsfenster mit Administratorrechten aus.

Studio und UI-Explorer fragen überdies nach der Installation der UiPath-Erweiterung für Java, wenn Sie versuchen, ein Steuerelement in einer Java-App aufzurufen, und wenn die Brücke nicht erkannt wird. Beachten Sie Folgendes: Wenn Sie die UiPath-Erweiterung für Java nach Aufforderung durch UI-Explorer installieren, werden die Java Bridge-Dateien nur im JRE-Verzeichnis bereitgestellt, in dem die Java-Zielanwendung gestartet wurde, und nicht im JDK-Verzeichnis.

📘

Hinweis:

To install this extension, you must have administrator rights.

Um zu überprüfen, ob die Erweiterung nicht ordnungsgemäß funktioniert, öffnen Sie UIExplorer und versuchen Sie, Steuerelemente in einer Java-App auszuwählen. Wenn das gesamte Fenster ausgewählt wird, bedeutet das, dass die Erweiterung nicht ordnungsgemäß funktioniert.

Ob die Erweiterung ordnungsgemäß installiert wurde, erkennen Sie anhand der generierten Selektoren für Java-Steuerelemente.

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

📘

Hinweis:

Die UiPath-Erweiterung für Java ist nur mit AWT-Apps (z. B. Java Swing, Oracle Forms, Fujitsu JBK) kompatibel. SWT-Apps hingegen werden mit Active Accessibility automatisiert. Wenn Sie den Typ Ihrer Java-Anwendung ermitteln möchten, überprüfen Sie das Attribut cls (Name der Fensterklasse) in UI-Explorer. Der Klassenname sollte SunAwtFrame oder javax.swing ähneln.

Prozesse können unabhängig von ihrer DPI-Skalierung mit Java-Anwendungen interagieren.

The UiPath Extension for Java can also be installed using the ScreenScrapeJavaSupport tool.

🚧

Warnung!

Das in Studio eingebettete Installationsprogramm für Java-Erweiterungen (und auch ScreenScrapeJavaSupport) verwendet den Erweiterungsmechanismus, um die Erweiterung von der JRE laden zu lassen. Ab Java 9 wurde der Erweiterungsmechanismus veraltet und das Installationsprogramm kann die erforderlichen Dateien nicht zur JRE hinzufügen (weitere Informationen finden Sie hier).

With the support of the default injection mechanism, the installer should be able to add the necessary files to the JRE. If this is not the case, for Java applications using Java 9 or greater, follow the steps described here.

Injection mechanism

When trying to indicate or validate selectors in the Java application, the Robot checks if the extension files are loaded in the target application process.

The files may exist there through various mechanisms:

  • by having the extension installed in the JRE (for Java 3 to 8)
  • by loading them from a custom folder (for Java 3 to 17, with different steps to follow after Java 9)

If the extension files are not there, an injection mechanism is used that tries to start our bridge.

Until now, the injection mechanism had some problems and it did not work in all cases. However, with UiAutomation 22.2, the injection mechanism has become more reliable and is able to automate applications that could not be automated before, like .jnlp applications launched with third party applications, like OWS or IcedTea Web.

Before, loading the extension from a custom folder was the main method used for applications launched with Java 9+. Now, the injection mechanism should replace it and make it a backup method.

Installing the Extension in a custom folder

For Java 8 or lower


To have the UiPath Extension for Java installed in a custom location, the following steps need to be performed:

  1. Erstellen Sie auf Ihrer Maschine einen neuen Ordner, in dem Sie die UiPath-Erweiterung für Java installieren möchten (z. B. C:\UiPathJavaExt), und kopieren Sie die folgenden Dateien dorthin:
    1.1. UiPathBridge.jar - befindet sich im Verzeichnis %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    1.2. UiPathJavaBridgeV8.dll und UiPathJavaBridgeV8_x64.dll, die sich im Verzeichnis %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath befinden. Es ist nicht notwendig, beide Dateien zu kopieren, aber es kann Probleme verhindern, die aufgrund von Versionsunterschieden zwischen der JRE und UiPathJavaBridge auftreten können.
  2. Der Setup-Mechanismus für die Java-Erweiterung, der von UiPath zur Installation der Erweiterung verwendet wird, stellt die Dateien UiPathBridge.jar und accessibility.properties im Java-Installationsverzeichnis (normalerweise C:\Program Files (x86)\Java\jre1.8.0_xx) bereit. Um die UiPath-Erweiterung für Java in einem benutzerdefinierten Ordner zu verwenden, muss die Abhängigkeit für diese Dateien wie folgt gelockert werden:
    2.1. Für die Datei UiPathBridge.jar müssen Sie den Ordner angeben, in den Sie UiPathBridge.jar und UiPathJavaBridgev8.dll kopiert haben. (z. B. C:\UiPathJavaExt), wenn Sie die Java-Anwendung starten, die die Erweiterung verwendet. Dies geschieht durch das Argument -Djava.ext.dirs = C:\UiPathJavaExt.
    2.2. Für die Datei accessibility.properties gibt es zwei Methoden:
    • Fügen Sie den Parameter assistive_technologies=UiPath.UiPathBridge zur globalen Konfigurationsdatei accessibility.properties hinzu, die sich im Verzeichnis %userprofile% befindet. Bitte beachten Sie, dass sich diese Datei von der Datei unterscheidet, die von der UiPath-Erweiterung für Java bereitgestellt wird, und dass ihre Einstellungen Vorrang vor den Einstellungen haben, die von der Java-Installation festgelegt wurden.
    • Verwenden Sie das Argument -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge, wenn Sie die Java-Zielanwendung ausführen.

Systemeigenschaften müssen korrekt an die Java-Zielanwendung übergeben werden. Dies kann durch verschiedene Methoden geschehen:

  • Fügen Sie die Systemeigenschaft -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge in die Umgebungsvariable _JAVA_OPTIONS ein. Die JRE lädt die Eigenschaften aus der Umgebungsvariablen und der UiPath-Erweiterung für Java, die in der Zielanwendung geladen sind.
  • Verwenden Sie den Befehl 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 in der Eingabeaufforderung. Es wird eine Bestätigungsmeldung angezeigt, dass die UiPath-Erweiterung für Java erfolgreich geladen wurde.
  • Fügen Sie die Systemeigenschaft -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge in die Umgebungsvariable JAVA_TOOL_OPTIONS ein. Bitte beachten Sie, dass diese Methode nur mit Java 5 oder höher funktioniert.

Die Übergabe der Eigenschaften an ein Java-Applet erfolgt mit einer der folgenden Methoden:

  1. Verwenden der appletviewer.exe-Anwendung.

Bei dieser Methode müssen Sie zunächst die Datei .java.policy im Ordner %userprofile% erstellen, die Folgendes enthalten muss:

grant { 

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

};

Sobald dies geschehen ist, muss das Ziel-Applet über appletviewer.exe mit diesem Befehl gestartet werden:

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. Verwendung der Java-Systemsteuerung, die in der JRE enthalten ist

In der Java-Systemsteuerung können Sie die Laufzeitparameter für jede registrierte JRE angeben. Daher müssen Sie die
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
Parameter für das Ziel-Applet angeben. Dadurch wird die UiPath-Erweiterung für Java jedes Mal geladen, wenn das Java-Applet gestartet wird.

Die folgende Tabelle zeigt die Kompatibilität zwischen den oben verwendeten Methoden, Java-Versionen und verschiedenen Typen von Java-Anwendungen:

Application Type

_JAVA_OPTIONS

JAVA_TOOL_OPTIONS

Command Line Parameters

Java Control Panel - Runtime Parameters

Java Desktop Application

Java 3 to Java 8

Java 5 to Java 8

Java 3 to Java 8

Not Supported

Java Contained Application (.exe)

Java 3 to Java 8

Java 5 to Java 8

Java 3 to Java 8 (1)

Not Supported

Java Applet

Java 3 to Java 8

Java 5 to Java 8

Not Supported

Java 3 to Java 8

Java Oracle Forms

Not Supported

Not Supported

Not Supported

Not Supported

(1) - Je nach verwendetem Befehlszeilentool müssen möglicherweise zusätzliche Parameter durch die Umgebungsvariablen übergeben werden.

For Java 9 or greater


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.

Die Hauptidee hinter dem Laden der Erweiterung kann in drei Anforderungen unterteilt werden:

  1. Fügen Sie den UiPathBridge.jar und UiPathServiceProvider.jar zum Klassenpfad der Anwendung hinzu.
  2. Machen Sie UiPathJavaBridgeV8.dll und UiPathJavaBridgeV8_x64 für UiPathBrdige.jar sichtbar. Dies kann auf verschiedene Arten erfolgen:
  • Platzieren Sie die Dateien im selben Ordner mit UiPathBridge.jar;
  • Platzieren Sie die Dateien im Ordner über UiPathBridge.jar;
  • Fügen Sie die beiden Dateien zu einem Ordner hinzu und verweisen Sie über eine Umgebungsvariable mit dem Namen UIPATH_JB_PATH auf dessen Pfad;
    Es ist nicht notwendig, auf beide Dateien zu verweisen, aber es kann Probleme verhindern, die aufgrund von Versionsunterschieden zwischen der JRE und UiPath Java Bridge auftreten können.
  1. Konfigurieren Sie die Anwendung so, dass unterstützende Technologie geladen wird. Dies geschieht über die accessibility.properties-Datei, die in den JREs platziert wird.

📘

Hinweis:

Die UiPathJavaServiceProvider.jar-Datei ist in den neuesten UiPath.UIAutomation.Activities-Paketen (neuer als 21.2 – Vorschau) verfügbar. Wenn Sie eine niedrigere Version von UIAutomation verwenden, kann die Datei durch vorübergehendes Upgrade einer leeren Workflowdatei auf 21.2 – Vorschau abgerufen werden. Dies führt dazu, dass eine neuere Version des UiPath.nuget-Pakets auf die Benutzermaschine (%UserProfile%\.nuget\packages\uipath) entpackt wird. Nach dem Abrufen der Datei kann das Paket auf die Version heruntergestuft werden, die vor dem Upgrade verwendet wurde.

Die Erfüllung der obigen Anforderungen hängt direkt von der Art und Weise ab, wie die Java-Anwendung gestartet wird. Es gibt drei gängige Möglichkeiten, die Anwendung zu starten und die Erweiterung zu laden.

Applications started from .jar, .bat, or .ps1 files

Betrachten wir den einfachen Fall, wenn die App direkt über einfache .jar-Dateien gestartet wird: java -jar SwingSet2.jar
Die folgenden Schritte müssen durchgeführt werden:

  1. Erstellen Sie auf Ihrer Maschine einen neuen Ordner, in dem Sie die UiPath-Erweiterung für Java installieren möchten (z. B. C:\UiPathJavaExt), und kopieren Sie die folgenden Dateien dorthin:
  • UiPathBridge.jar und UiPathJavaServiceProvider.jar- befinden sich im Verzeichnis %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
  • UiPathJavaBridgeV8.dll und UiPathJavaBridgeV8_x64.dll- befinden sich im Verzeichnis %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath.
  1. Fügen Sie den zuvor erstellten Ordner dem Klassenpfad der Java-Zielanwendung hinzu. Dies geschieht mit dem Befehl -cp, -classpath. In diesem Beispiel betrachten wir SwingSet2 als Java-Zielanwendung:
    C:\Program Files (x86)\Java\jre1.9.0_xx \bin\java.exe -cp SwingSet2.jar;C:\UiPathJavaExt\* -Djavax.accessibility.assistive_technologies=UiPathJavaServiceProvider SwingSet2

Wenn die Anwendung über eine .bat- oder eine .ps1Datei gestartet wird, dann muss die Datei mit einem Texteditor analysiert werden. Die Datei, die die Anwendung startet, enthält eine Zeile, die dem Befehl java -jar SwingSet2.jar ähnelt, aber sie enthält auch viele andere Parameter. Der Befehl kann so geändert werden, dass die Dateien in den Klassenpfad aufgenommen werden und der Parameter für unterstützende Technologien angegeben wird. Änderungen innerhalb dieser Dateien sollten mit Vorsicht vorgenommen werden. In einigen Fällen werden der Klassenpfad und die zusätzlichen Parameter aus Umgebungsvariablen ausgewählt, was eine weniger invasive Methode ist.

Applications started from .exe files

Wenn die App über eine .exe-Datei gestartet wird, müssen Sie eine alternative Möglichkeit finden, die Dateien auf den Klassenpfad zu laden und den Parameter für die unterstützende Technologie anzugeben.

  1. Um die Dateien aus dem Klassenpfad zu laden, können Sie nach Umgebungsvariablen suchen, die die ausführbare Datei liest, oder nach Konfigurationsdateien, die angeben, wo die Abhängigkeiten geladen werden. Es gibt hier kein Standardverfahren und alles ist stark abhängig vom Anpassungsgrad der ausführbaren Datei.
  2. Die unterstützende Technologie kann in diesem Fall ähnlich wie beim Installationsprogramm der Erweiterung angegeben werden. Die Standarddatei accessibility.properties kann in den %UserProfile%-Ordner verschoben und in .accessbility.properties umbenannt werden.

Applications started from .jnlp files

Wenn die App über eine .jnlp-Datei gestartet wird, muss Folgendes berücksichtigt werden:

  1. Das Laden von UiPathBridge,jar und UiPathServiceProvider.jar muss durch Hinzufügen als Abhängigkeiten zur .jnlp-Datei erfolgen. Dadurch wird festgelegt, dass der Server eine neue .jnlp-Datei zur Verfügung stellt, anstatt eine vorhandene zu bearbeiten.
  2. Die beiden .dll-Dateien können auch innerhalb der .jnlp-Datei geladen werden oder über die UIPATH_JB_PATH-Umgebungsvariable referenziert werden, wie oben erläutert.
  3. Die assistive_technology-Eigenschaft kann auch der .jnlp-Datei hinzugefügt werden oder die accessibility.properties-Datei kann in %UserProfile% platziert werden.

Application scaling support

Die Skalierung wird für Anwendungen ab Java-Version 9 über Parameter vollständig unterstützt. Sie können einer zu automatisierenden Java-Anwendung folgende Parameter hinzufügen, um die Skalierung zu ermöglichen:

  • sun.java2d.uiScale.enabled – Wird dieser Parameter nicht verwendet oder auf den genauen Stringwert „true“ festgelegt, wird er als wahr betrachtet und die folgende Skalierungskonfiguration wird berücksichtigt. Wird ein anderer Wert als „true“ eingegeben, (z. B. True, false, False, abc), gilt er als falsch es werden keine zusätzlichen Skalierungsanpassungen vorgenommen.
  • sun.java2d.uiScale - Values can be passed in three forms:
    • Als Verhältnis (0.5, 2.3, 1.5)
    • In Prozent (100 %, 150 %)
    • Als dpi-Werte (96 dpi, 120 dpi). Es wird berücksichtigt, ob die Skalierung aktiviert ist. Die Skalierung wird auf beiden Achsen geändert.
  • sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY Values can be passed as for the sun.java2d.uiScale parameter. Both of them are necessary to be considered by the Java application. They are more specific than the general configuration of scaling As such, if all 3 parameters are set, only these are taken into account.

Aktualisiert vor 3 Monaten

Erweiterung für Java


Auf API-Referenzseiten sind Änderungsvorschläge beschränkt

Sie können nur Änderungen an dem Textkörperinhalt von Markdown, aber nicht an der API-Spezifikation vorschlagen.