studio
2023.4
false
UiPath logo, featuring letters U and I in white

Guía de usuario de Studio

Última actualización 17 de dic. de 2024

Extensión para Java

Versiones compatibles

La extensión de Java es compatible con cualquier versión de JRE, desde Java 3 hasta Java 17.

Al intentar indicar o validar selectores en la aplicación Java, UiPath Robot comprueba si los archivos de extensión se cargan en el proceso de la aplicación de destino.

Los archivos pueden existir allí mediante varios mecanismos:

  • al tener la extensión instalada en el JRE (para Java 3 a 8) a través del mecanismo de extensiones.
  • al cargarlos desde una carpeta personalizada (para Java 3 a 17, con diferentes pasos que seguir tras Java 9+).

Si los archivos de extensión no están ahí, se utiliza un mecanismo de inyección para intentar iniciar nuestro puente.

Nota:

El instalador de la extensión de Java integrado en Studio (y también la herramienta ScreenScrapeJavaSupport) depende del mecanismo de extensiones para que el JRE cargue la extensión, por lo que puede utilizarse para automatizar aplicaciones basadas en Java que se ejecutan con Java 3 a 8.

A partir de Java 9, el mecanismo de extensiones ha quedado obsoleto y el instalador no puede añadir los archivos necesarios a JRE. Estos archivos deben cargarse desde una carpeta personalizada (descubre más información aquí).

A partir de la versión 22.2.0-preview del paquete UIAutomation, con el soporte del mecanismo de inyección predeterminado, ya no es obligatorio instalar la extensión para Java para automatizar aplicaciones basadas en Java.

Debes instalar la extensión de Java desde Studio o la línea de comandos solo cuando el mecanismo de inyección no funcione, y cuando las aplicaciones Java utilicen Java 3 a 8. Para las aplicaciones Java que utilizan Java 9 o posterior, sigue los pasos descritos en Instalar la extensión en una carpeta personalizada.

Mecanismo de inyección

Hasta la versión 22.2.0 vista previa de UiPath.UIAutomation.Activities, el mecanismo de inyección no funcionaba en todos los casos. La carga de la extensión desde una carpeta personalizada era el método principal utilizado para las aplicaciones iniciadas con Java 9+.

A partir de UiPath.UIAutomation.Activities versión 22.2.0 vista previa, el mecanismo de inyección se ha vuelto más fiable y puede automatizar aplicaciones que no se podían automatizar antes, como las aplicaciones .jnlp iniciadas con aplicaciones de terceros, como OWS o IcedTea Web.

El mecanismo de inyección se utiliza de forma predeterminada y la instalación de la extensión de Java solo debe utilizarse como método de copia de seguridad.

Instalar la extensión en JRE desde Studio o la línea de comandos

Para Java 8 o anteriores

La extensión de UiPath para Java se instala de la siguiente manera:

Desde Studio
  1. Cierra todas las aplicaciones Java en ejecución.
  2. Abre Studio.
  3. Navega a Herramientas > Extensiones de UiPath.
  4. Selecciona Java > Instalar. Aparecerá así un mensaje de confirmación, informándote de que la extensión se ha instalado.
Desde la línea de comandos
Ejecuta este comando C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java en una ventana de símbolo de comandos con derechos de administrador.

Studio y UI Explorer también solicitan instalar la extensión UiPath para Java cuando intentas seleccionar un control dentro de una aplicación Java y cuando el puente no se detecta. Si decides instalar la extensión UiPath para Java cuando UI Explorer te lo pide, los archivos de Java Bridge solo se implementarán en el directorio JRE que inició la aplicación Java de destino en lugar de en el directorio JDK.

Aviso: Para instalar esta extensión, deberás tener derechos de administrador.

Para comprobar si la extensión funciona correctamente, abre UIExplorer e intenta seleccionar controles dentro de una aplicación Java. Si se selecciona la ventana completa, significará que la extensión no funciona correctamente.

Puedes saber si la extensión está correctamente instalada o no por los selectores generados para los controles de Java.

  • Selector válido para controles Java: <wnd app=”...” /><java role=”...” />
  • Selector no válido para controles de Java: <wnd app=”...” /><ctrl role=”client” />
Nota: La extensión UiPath para Java solo es compatible con aplicaciones AWT (p. ej., Java Swing, Oracle Forms, Fujitsu JBK) mientras que las aplicaciones SWT se automatizan con accesibilidad activa.Para detectar el tipo de tu aplicación de Java, consulta el atributo cls (nombre de la clase de la ventana) en UI Explorer.El nombre de la clase debería parecerse a SunAwtFrame o a javax.swing.

Los procesos pueden interactuar con las aplicaciones Java independientemente de su escala de DPI.

También se puede instalar la extensión UiPath para Java utilizando la herramienta ScreenScrapeJavaSupport.

Para Java 9 o posterior

Utiliza la instalación en una carpeta personalizada, como se describe en la siguiente sección.

Instalar la extensión en una carpeta personalizada

Para Java 8 o anteriores

Para instalar la extensión de UiPath para Java en una ubicación personalizada, realiza los siguientes pasos:

  1. Crea una nueva carpeta en tu equipo en la que quieras instalar la extensión UiPath para Java (como C:\UiPathJavaExt) y copia los siguientes archivos en ella:
    1. UiPathBridge.jar: ubicado en el directorio %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    2. UiPathJavaBridgeV8.dll y UiPathJavaBridgeV8_x64.dll ubicados en el directorio %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath. No es necesario copiar ambos archivos, pero puede evitar problemas que se pueden producir debido a la falta de compatibilidad de las versiones entre JRE y UiPath Java Bridge.
  2. El mecanismo de configuración de la extensión de Java que utiliza UiPath para instalar la extensión implementa los archivos UiPathBridge.jar y accessibility.properties en el directorio de instalación (normalmente C:\Program Files (x86)\Java\jre1.8.0_xx). Para utilizar la extensión UiPath para Java desde una carpeta personalizada, la dependencia de estos archivos debe deshacerse de la siguiente manera:
    1. Para el archivo UiPathBridge.jar, deberás especificar la carpeta en la que copiaste UiPathBridge.jar y UiPathJavaBridgev8.dll (como C:\UiPathJavaExt) cuando inicies la aplicación Java que utiliza la extensión. Esta acción se lleva a cabo mediante el argumento -Djava.ext.dirs = C:\UiPathJavaExt.
    2. Para el archivo accessibility.properties, hay dos métodos:
      • Añade el parámetro assistive_technologies=UiPath.UiPathBridge al archivo de configuración global accessibility.properties ubicado en el directorio %userprofile%. Ten en cuenta que este archivo es diferente al que implementa la extensión UiPath para Java, y que su configuración tiene prioridad sobre la que establece la instalación de Java.
      • Utiliza el argumento -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge al ejecutar la aplicación Java de destino.

Las propiedades del sistema deben trasladarse correctamente a la aplicación Java de destino. Esta acción puede llevarse a cabo mediante varios métodos:

  • Incluye la propiedad del sistema -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge en la variable de entorno _JAVA_OPTIONS. El JRE carga las propiedades desde la variable de entorno y la extensión UiPath para Java cargada en la aplicación de destino.
  • Utiliza el comando 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 dentro del símbolo del sistema. Aparecerá así un mensaje de confirmación indicando que la extensión UiPath para Java se ha cargado correctamente.
  • Incluye la propiedad del sistema -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge en la variable de entorno JAVA_TOOL_OPTIONS. Ten en cuenta que este método solo funciona con Java 5 o posteriores.

El traslado de las propiedades a un applet Java se lleva a cabo con uno de los siguientes métodos:

  1. Utilizando la appletviewer.exe aplicación.
    Este método requiere que primero crees el archivo .java.policy en la carpeta %userprofile%, además de contener lo siguiente:
    grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };
    Una vez terminado, el applet de destino debe iniciarse a través de appletviewer.exe con este comando:

    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. Utilizando el panel de control de Java que se entrega con JRE.

    El panel de control de Java te permite especificar los parámetros de tiempo de ejecución para cada JRE registrado. Por tanto, debes especificar el

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

    parámetro para el applet de destino. Esto hace que la extensión UiPath para Java se cargue cada vez que se inicia el applet de Java.

La siguiente tabla presenta la compatibilidad entre los métodos utilizados anteriormente, las versiones Java y los diferentes tipos de aplicaciones Java:

Tipo de aplicación

_JAVA_OPTIONS

JAVA_TOOL_OPTIONS

Parámetros de la línea de comandos

Panel de control de Java: parámetros del entorno de tiempo de ejecución

Aplicación de escritorio de Java

Java 3 a Java 8

Java 5 a Java 8

Java 3 a Java 8

No compatible

Aplicación con contenido en Java (.exe)

Java 3 a Java 8

Java 5 a Java 8

Java 3 a Java 8 (1)

No compatible

Applet Java

Java 3 a Java 8

Java 5 a Java 8

No compatible

Java 3 a Java 8

Java Oracle Forms

No compatible

No compatible

No compatible

No compatible

(1): dependiendo de la herramienta de la línea de comandos que utilices, es posible que tengas que traspasar parámetros adicionales por las variables del entorno.

Para Java 9 o posterior

A partir de Java 9, se eliminó el Mecanismo de extensión de Java, lo que significa que el argumento -Djava.ext.dirs no se puede utilizar en Java 9 o en versiones posteriores.

La idea principal de la carga de la extensión puede dividirse en 3 requisitos:

  1. Añade UiPathBridge.jar y UiPathServiceProvider.jar al classpath de la aplicación.
  2. Convierte UiPathJavaBridgeV8.dll y UiPathJavaBridgeV8_x64 en visibles para UiPathBrdige.jar. Esto se puede hacer de varias formas:
    • Situar los archivos en la misma carpeta, con UiPathBridge.jar.
    • Situar los archivos en la carpeta UiPathBridge.jar.
    • Añadir los dos archivos a una carpeta y hacer referencia a su ruta mediante una variable de entorno llamada UIPATH_JB_PATH.

      no es necesario hacer referencia a ambos archivos, pero puede evitar que ocurran problemas debido a la no coincidencia de versiones entre JRE y UiPath Java Bridge.

  3. Configura la aplicación para cargar tecnología de apoyo. Esta acción se lleva a cabo a través del archivo accessibility.properties que se encuentra dentro de los JRE.
    Nota:: El archivo UiPathJavaServiceProvider.jar está disponible en los paquetes UiPath.UIAutomation.Activities más recientes (posteriores a 21.2-preview). Si utilizas una versión anterior de UIAutomation, el archivo puede obtenerse actualizando temporalmente un archivo de flujo de trabajo vacío a la versión 21.2-preview. Esto hace que se desempaquete una versión más reciente del paquete UiPath.nuget a la máquina del usuario (%UserProfile%\.nuget\packages\uipath). Después de obtener el archivo, el paquete puede desactualizarse a la versión utilizada antes de la actualización.

Cumplir con los requisitos anteriores depende directamente de la forma en la que se inicia la aplicación Java. Hay 3 formas habituales de iniciar la aplicación y cargar la extensión.

Aplicaciones iniciadas desde .jar, .bat, o archivos .ps1.

Veamos un caso sencillo en el que la aplicación se inicia directamente desde simples archivos .jar: java -jar SwingSet2.jar

Deben llevarse a cabo los siguientes pasos:

  1. Crea una nueva carpeta en tu equipo en la que quieras instalar la extensión UiPath para Java (como C:\UiPathJavaExt) y copia los siguientes archivos en ella:
    • UiPathBridge.jar y UiPathJavaServiceProvider.jar: ubicados en el directorio %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    • UiPathJavaBridgeV8.dll y UiPathJavaBridgeV8_x64.dll: ubicados en el directorio %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath.
  2. Añade la carpeta creada anteriormente al classpath de la aplicación Java de destino. Esta acción se lleva a cabo con el comando -cp, -classpath. Para este ejemplo, consideramos SwingSet2 como la aplicación Java de destino:

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

Si la aplicación se inicia mediante un archivo .bato .ps1, entonces el archivo debe analizarse con un editor de texto. El archivo que inicia la aplicación contiene una línea similar al comando java -jar SwingSet2.jar, pero también incluye muchos otros parámetros. El comando puede cambiarse para incluir los archivos en el classpath y especificar el parámetro de la tecnología de apoyo. Los cambios dentro de esos archivos deben llevarse a cabo con cuidado. En algunos casos, el classpath y los parámetros adicionales se eligen desde variables de entorno, que es un método menos invasivo.

Aplicaciones iniciadas desde archivos .exe

Cuando la aplicación se inicia mediante un archivo .exe, debe buscarse una forma alternativa de cargar los archivos al classpath y especificar el parámetro de la tecnología de apoyo.
  1. Para cargar los archivos desde el classpath, puedes buscar las variables del entorno que el ejecutable lee o los archivos de configuración que especifican dónde se cargan las dependencias. Aquí no hay normas, y depende del lote en la personalización del ejecutable.
  2. La tecnología de apoyo puede especificarse en este caso de forma similar a la que realiza el instalador de la extensión. El archivo accessibility.properties estándar puede pasarse a la carpeta %UserProfile% y cambiar su nombre a .accessbility.properties.

Aplicaciones iniciadas desde archivos .jnlp

Comenzando con UIAutomation v22.2, la interacción con las aplicaciones de tipo .jnlp se realiza de forma predeterminada debido a una actualización del mecanismo de inyección existente.

Compatibilidad del escalado de aplicaciones

El escalado es totalmente compatible con las aplicaciones de Java 9+ a través de los parámetros. Considera la posibilidad de añadir los siguientes parámetros a la aplicación Java que deseas automatizar para habilitar la compatibilidad de escalado:

  • sun.java2d.uiScale.enabled: cuando no se usa o no se establece en el valor exacto de la cadena de "true", se considera true y se tiene en cuenta la siguiente configuración de escalado. Cuando se establece en cualquier otro valor, distinto de "true" (como True, , false, False y abc) se considera "false" y no se realiza ningún ajuste de escalado.
  • sun.java2d.uiScale: los valores pueden pasarse en tres formulaciones:
    • Como proporción (0,5, 2,3, 1,5)
    • Como porcentajes (100 %, 150 %)
    • Como valores en ppp (96 ppp, 120 ppp). Se considera si el escalado está habilitado. Modifica el escalado en ambos ejes.
  • sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY Los valores pueden pasarse como el parámetro sun.java2d.uiScale. Ambos son necesarios para ser considerados por la aplicación Java. Son más específicos que la configuración general de escalado. Por tanto, si se establecen los 3 parámetros, solo ellos se tienen en cuenta.

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.