studio
2024.10
true
Guide de l’utilisateur de Studio
Last updated 30 oct. 2024

Extension pour Java

Versions prises en charge

L'extension Java est compatible avec toutes les versions de JRE, de Java 3 à Java 17.

Lorsqu'il essaie d'indiquer ou de valider des sélecteurs dans une application Java, le robot vérifie si les fichiers d'extension sont chargés dans le processus d'application cible.

Les fichiers peuvent y exister via différents mécanismes :

  • en ayant l’extension installée dans le JRE (pour Java 3 à 8) via le mécanisme d’extension.
  • en les chargeant à partir d'un dossier personnalisé (pour Java 3 à 17, avec différentes étapes à suivre pour Java 9+)

Si les fichiers d'extension sont absents, un mécanisme d'injection est utilisé pour tenter de démarrer notre pont.

Remarque :

Le programme d'installation de l'extension Java intégré dans Studio (ainsi que l'outil ScreenScrapeJavaSupport) s'appuie sur le mécanisme d'extension pour que l'extension soit chargée par le JRE, de sorte qu'il peut être utilisé pour automatiser les applications basées sur Java en cours d'exécution avec Java 3 à 8.

Depuis Java 9, le mécanisme d'extension est obsolète et le programme d'installation n'est pas en mesure d'ajouter les fichiers nécessaires au JRE. Ces fichiers doivent être chargés à partir d'un dossier personnalisé (plus d'infos ici).

À partir de l’aperçu de la version 22.2.0 du package UIAutomation, avec la prise en charge du mécanisme d’injection par défaut, il n’est plus obligatoire d’installer l’extension pour Java pour automatiser les applications basées sur Java.

Vous devez installer l’extension Java à partir de Studio ou de la ligne de commande uniquement lorsque le mécanisme d’injection ne fonctionne pas et lorsque les applications Java utilisent Java 3 à 8. Pour les applications Java utilisant Java 9 ou une version supérieure, suivez les étapes décrites dans Installation de l’extension dans un dossier personnalisé.

Mécanisme d'injection

Jusqu’à l’aperçu de la version 22.2.0 de UiPath.UIAutomation.Activities, le mécanisme d’injection ne fonctionnait pas dans tous les cas. Le chargement de l’extension à partir d’un dossier personnalisé était la principale méthode utilisée pour les applications lancées avec Java 9+.

À partir de l'aperçu de la version 22.2.0 de UiPath.UIAutomation.Activities, le mécanisme d'injection est devenu plus fiable et est capable d'automatiser des applications qui ne pouvaient pas être automatisées auparavant, comme les applications .jnlp lancées avec des applications tierces, comme OWS ou IcedTea Web.

Le mécanisme d’injection est utilisé par défaut et l’installation de l’extension Java ne doit être utilisée qu’en tant que méthode de sauvegarde.

Installation de l’extension dans le JRE à partir de Studio ou de la ligne de commande

Pour Java 8 ou version antérieure

L'extension UiPath pour Java est installée comme suit :

Depuis Studio
  1. Fermez les applications Java en cours.
  2. Ouvrez Studio.
  3. Accédez à Outils (Tools) > Extensions UiPath (UiPath Extensions).
  4. Sélectionnez Java > Installer (Install). Un message de confirmation apparaît, vous informant que l'extension a été installée.
À partir de la ligne de commande
Exécutez cette commande C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java dans une fenêtre d'invite de commande avec des droits d'administrateur.

Studio et UI Explorer vous invitent également à installer l'extension UiPath pour Java lorsque vous essayez de sélectionner un contrôle dans une application Java et lorsque le pont n'est pas détecté. Si vous choisissez d'installer l'extension UiPath pour Java lorsque vous y êtes invité par UI Explorer, les fichiers Java Bridge ne seront déployés que dans le répertoire JRE qui a lancé l'application Java cible au lieu du répertoire JDK.

Remarque : il est nécessaire de disposer de droits d'administrateur pour installer cette extension.

Pour vérifier si l'extension présente des dysfonctionnements, ouvrez UIExplorer et essayez de sélectionner les contrôles dans une application Java. Si la fenêtre entière est sélectionnée, cela signifie que l'extension ne fonctionne pas correctement.

Vous pouvez savoir si l'extension est correctement installée ou non par les sélecteurs générés pour les contrôles Java.

  • Sélecteur non valide pour les contrôles Java : <wnd app=”...” /><java role=”...” />
  • Sélecteur non valide pour les contrôles Java : <wnd app=”...” /><ctrl role=”client” />
Remarque : l'extension UiPath pour Java n'est compatible qu'avec les applications AWT (par ex. Java Swing, Oracle Forms, Fujitsu JBK), tandis que les applications SWT sont automatisées avec Active Accessibility. Pour détecter le type de votre application Java, vérifiez l'attribut cls (nom de la classe de fenêtre) dans UI Explorer. Le nom de la classe doit être similaire à SunAwtFrame ou javax.swing.

Les processus peuvent interagir avec les applications Java quelle que soit leur échelle DPI.

Vous pouvez également installer l'extension UiPath pour Java à l'aide de l'outil ScreenScrapeJavaSupport.

Pour Java 9 ou version ultérieure

Utilisez l'installation dans un dossier personnalisé, comme décrit dans la section suivante.

Installation de l'extension dans un dossier personnalisé

Pour Java 8 ou version antérieure

Pour que l'extension UiPath pour Java soit installée dans un emplacement personnalisé, effectuez les étapes suivantes :

  1. Créez un dossier sur la machine sur laquelle vous souhaitez installer l'extension UiPath pour Java (par exemple, C:\UiPathJavaExt) et copiez les fichiers suivants :
    1. UiPathBridge.jar - situé dans le répertoire %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    2. UiPathJavaBridgeV8.dll et UiPathJavaBridgeV8_x64.dll situés dans le répertoire %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath. Il n'est pas nécessaire de copier les deux fichiers, mais cela peut éviter les problèmes qui peuvent survenir en raison d'une mauvaise concordance des versions entre le JRE et le UiPathJavaBridge.
  2. Le mécanisme d’installation de l’extension Java utilisé par UiPath pour installer l’extension déploie les fichiers UiPathBridge.jar et accessibility.properties dans le répertoire d’installation Java (généralement C:\Program Files (x86)\Java\jre1.8.0_xx). Pour que l’extension UiPath pour Java puisse être utilisée depuis un dossier personnalisé, la dépendance de ces fichiers doit être assouplie, comme suit :
    1. Pour le fichier UiPathBridge.jar, vous devez spécifier le dossier dans lequel vous avez copié UiPathBridge.jar et UiPathJavaBridgev8.dll (tel que C:\UiPathJavaExt) lorsque vous démarrez l'application Java qui utilise l'extension. Cela se fait via l’argument -Djava.ext.dirs = C:\UiPathJavaExt.
    2. Pour le fichier accessibility.properties, il existe deux méthodes :
      • Ajouter le paramètre assistive_technologies=UiPath.UiPathBridge au fichier de configuration globale accessibility.properties situé dans le répertoire %userprofile%. Notez que ce fichier est différent de celui déployé par l'extension UiPath pour Java, et que ses paramètres ont la priorité sur ceux définis par l'installation de Java.
      • Utiliser l'argument -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge lorsque vous exécutez l'application Java cible.

Les propriétés du système doivent être correctement transmises à l'application Java cible par l'un des moyens suivants :

  • Inclure la propriété système -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge dans la variable d'environnement _JAVA_OPTIONS. Le JRE charge les propriétés de la variable d'environnement ainsi que l'extension UiPath pour Java chargée dans l'application cible.
  • Utiliser la commande 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 dans l'invite de commande. Un message de confirmation apparaît indiquant que l'extension UiPath pour Java a été chargée avec succès.
  • Inclure la propriété du système -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge dans la variable d'environnement JAVA_TOOL_OPTIONS. Notez que cette méthode ne fonctionne qu'avec Java 5 ou supérieur.

La transmission des propriétés à une applet Java se fait par l'un des moyens suivants :

  1. À l'aide de l’application appletviewer.exe.
    Cette méthode vous oblige à d’abord créer le fichier .java.policy dans le dossier %userprofile% et doit contenir les éléments suivants :
    grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };
    Une fois cette opération effectuée, l'applet cible doit être démarrée via appletviewer.exe avec cette commande :

    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. À l'aide du panneau de contrôle Java livré avec le JRE.

    Le panneau de configuration Java vous permet de spécifier les paramètres d'exécution de chaque JRE enregistré. En tant que tel, vous devez spécifier le

    -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge

    paramètre de l'applet cible. Cela permet à l'extension UiPath pour Java de se charger à chaque démarrage de l'applet Java.

Le tableau ci-dessous présente la compatibilité des méthodes utilisées ci-dessus, les versions Java et les différents types d'applications Java :

Type de demande (Application Type)

_JAVA_OPTIONS

JAVA_TOOL_OPTIONS

Paramètres de la ligne de commande

Panneau de configuration Java - Paramètres d'exécution (Java Control Panel - Runtime Parameters)

Application Java Desktop

Java 3 à Java 8

Java 5 à Java 8

Java 3 à Java 8

Non soutenu

Application contenue dans Java (.exe)

Java 3 à Java 8

Java 5 à Java 8

Java 3 à Java 8 (1)

Non soutenu

Java Applet

Java 3 à Java 8

Java 5 à Java 8

Non soutenu

Java 3 à Java 8

Java Oracle Forms

Non soutenu

Non soutenu

Non soutenu

Non soutenu

(1) – selon l'outil de ligne de commande que vous utilisez, des paramètres supplémentaires peuvent devoir être passés par les variables d'environnement.

Pour Java 9 ou version ultérieure

À partir de Java 9, le mécanisme d'extension de Java est supprimé, ce qui signifie que l'argument -Djava.ext.dirs ne peut pas être utilisé sur les applications Java 9 et supérieures.

L'idée principale derrière le chargement de l'extension peut être divisée en 3 exigences :

  1. Ajoutez le UiPathBridge.jar et le UiPathServiceProvider.jar au chemin de classe de l'application.
  2. Rendez UiPathJavaBridgeV8.dll et UiPathJavaBridgeV8_x64 visibles pour UiPathBrdige.jar. Cela peut être fait de différentes façons :
    • placez les fichiers dans le même dossier avec UiPathBridge.jar ;
    • placez les fichiers dans le dossier situé au-dessus de UiPathBridge.jar ;
    • ajoutez les deux fichiers à un dossier et référencez son chemin via une variable d'environnement appelée UIPATH_JB_PATH ;

      Il n'est pas nécessaire de référencer les deux fichiers, mais cela peut prévenir les problèmes qui peuvent survenir en raison d'une mauvaise concordance de versions entre le JRE et le pont Java UiPath.

  3. Configurez l'application pour charger la technologie d'assistance. Cela se fait via le fichier accessibility.properties placé à l'intérieur des JRE.
    Remarque : le fichier UiPathJavaServiceProvider.jar est disponible dans les derniers packages UiPath.UIAutomation.Activities (plus récents que 21.2-preview). Si vous utilisez une version antérieure de UIAutomation, le fichier peut être obtenu en mettant temporairement à niveau un fichier de workflow vide vers 21.2-preview. Cela entraîne la décompression d'une version plus récente du package UiPath.nuget sur la machine de l'utilisateur (%UserProfile%\.nuget\packages\uipath). Après avoir obtenu le fichier, le package peut être rétrogradé vers la version utilisée avant la mise à niveau.

Le respect des exigences listées ci-dessus dépend directement de la manière dont l'application Java est démarrée. Il existe 3 manières courantes de démarrer l'application et de charger l'extension.

Applications démarrées à partir de .jar, .bat ou de fichiers .ps1

Considérons le cas simple où l'application est lancée directement à partir de simples fichiers .jar : java -jar SwingSet2.jar

Les étapes suivantes doivent être suivies :

  1. Créez un dossier sur la machine sur laquelle vous souhaitez installer l'extension UiPath pour Java (par exemple, C:\UiPathJavaExt) et copiez les fichiers suivants :
    • UiPathBridge.jar et UiPathJavaServiceProvider.jar - situés dans le répertoire %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    • UiPathJavaBridgeV8.dll et UiPathJavaBridgeV8_x64.dll - situés dans le répertoire %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath.
  2. Ajouter le dossier créé précédemment au chemin de classe de l'application Java cible. Cette opération se réalise à l'aide de la commande -cp, -classpath. Pour cet exemple, nous considérons SwingSet2 l'application Java cible :

    C:\Program Files (x86)\Java\jre1.9.0_xx \bin\java.exe -cp SwingSet2.jar;C:\UiPathJavaExt\* -Djavax.accessibility.assistive_technologies=UiPathJavaServiceProvider SwingSet2

Si l'application est lancée via un fichier .bat ou .ps1, alors le fichier doit être analysé avec un éditeur de texte. Le fichier qui démarre l'application contient une ligne similaire à la commande java -jar SwingSet2.jar, mais comprend également de nombreux autres paramètres. La commande peut être modifiée pour inclure les fichiers dans le chemin de classe et pour spécifier le paramètre de technologie d'assistance. Les modifications à l'intérieur de ces fichiers doivent être effectuées avec prudence. Dans certains cas, le chemin de classe et les paramètres supplémentaires sont choisis à partir de variables d'environnement, ce qui est une méthode moins invasive.

Applications démarrées à partir de fichiers .exe

Lorsque l'application est lancée via un fichier .exe, vous devez trouver un autre moyen de charger les fichiers dans le chemin de classe et de spécifier le paramètre de technologie d'assistance.
  1. Pour charger les fichiers à partir du chemin de classe, vous pouvez rechercher des variables d'environnement que l'exécutable lit ou des fichiers de configuration qui spécifient où les dépendances sont chargées. Il n'y a rien de standard ici, et cela dépend beaucoup du niveau de personnalisation de l'exécutable.
  2. La technologie d'assistance peut être spécifiée dans ce cas d'une manière similaire à celle utilisée par l'installateur de l'extension. Le fichier accessibility.properties standard peut être déplacé vers le dossier %UserProfile% et être renommé .accessbility.properties.

Applications démarrées à partir de fichiers .jnlp

À partir de UiAutomation v22.2, l'interaction avec les applications de type .jnlp se fait par défaut en raison d'une mise à niveau du mécanisme d'injectionexistant.

Prise en charge de la mise à l'échelle des applications

La mise à l'échelle est entièrement prise en charge pour les applications Java 9+ via des paramètres. Pensez à ajouter les paramètres suivants à l'application Java que vous souhaitez automatiser afin d'activer la prise en charge de la mise à l'échelle :

  • sun.java2d.uiScale.enabled : lorsqu'il n'est pas utilisé ou défini sur la valeur de chaîne exacte « true », il est considéré comme vrai et la configuration de mise à l'échelle suivante est prise en compte. Lorsqu'il est défini sur n'importe quelle autre valeur que « true » (par exemple, True, false, False, abc), il est alors considéré comme faux et aucun ajustement de mise à l'échelle supplémentaire n'est effectué.
  • sun.java2d.uiScale : les valeurs peuvent être transmises sous trois formes :
    • En tant que ratio (0,5, 2,3, 1,5)
    • En pourcentages (100 %, 150 %)
    • Valeurs dpi (96 dpi, 120 dpi). Il est pris en compte si la mise à l’échelle est activée. Il modifie la mise à l’échelle sur les deux axes.
  • sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY Les valeurs peuvent être transmises comme pour le paramètre sun.java2d.uiScale. Les deux doivent être pris en compte par l'application Java. Ils sont plus spécifiques que la configuration générale de la mise à l'échelle. Ainsi, si les 3 paramètres sont définis, seuls ceux-ci sont pris en compte.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.