- Notas relacionadas
- Primeros pasos
- Instalación y configuración
- Proyectos de automatización
- Acerca de la publicación de proyectos de automatización
- Diseñar automatizaciones
- Gestionar paquetes de actividades
- Configuración de los Ajustes del Proyecto de Actividades
- Firma de paquetes
- Control
- Importar entidades
- Experiencia de diseño moderna
- Vincular un proyecto a una idea en Automation Hub
- Usar Data Manager
- Dependencias
- Tipos de flujos de trabajo
- Comparación de archivos
- Mejores prácticas de automatización
- Integración del control de código fuente
- Depuración
- La herramienta de diagnóstico
- Analizador de flujo de trabajo
- Acerca del analizador de flujo de trabajo
- ST-NMG-001: convención sobre nombres de variables
- ST-NMG-002: convención de nombres de argumentos
- ST-NMG-004: duplicación de nombres de visualización
- ST-NMG-005: anulación de variables
- ST-NMG-006: argumentos de anulación de variables
- ST-NMG-008: longitud variable excedida
- ST-NMG-009: variables de datos prefijados
- ST-NMG-011: argumentos de prefijo Datatable
- ST-NMG-012: valores predeterminados de los argumentos
- ST-NMG-016: longitud del argumento excedida
- ST-DBP-002: recuento de Argumentos elevado
- ST-DBP-003: bloque de Catch vacío
- ST-DBP-007: múltiples capas de diagramas de flujo
- ST-DBP-020: propiedades de salida no definidas
- ST-DBP-023: flujo de trabajo vacío
- ST-DBP-024: comprobación de actividad de persistencia
- ST-DBP-025: requisito previo para la serialización de variables
- ST-DBP-026: retraso en el uso de la actividad
- ST-DBP-027: mejor práctica de persistencia
- ST-DBP-028: requisito de serialización de argumentos
- ST-USG-005: argumentos de actividad codificados
- ST-USG-009: variables no utilizadas
- ST-USG-010: dependencias sin utilizar
- ST-USG-014: restricciones de los paquetes
- ST-USG-020: mensajes de registro mínimos
- ST-USG-024: guardado sin usar para más adelante
- ST-USG-025: uso incorrecto de los valores guardados
- ST-USG-026: restricciones de actividad
- ST-USG-027: paquetes necesarios
- ST-USG-028: Restringir la invocación de plantillas de archivo
- ST-USG-032 - Etiquetas obligatorias
- ST-USG-034 - URL Automation Hub
- Variables
- Argumentos
- Espacios de nombres importados
- Grabación
- Elementos de la IU
- Flujo de control
- Selectores
- Repo. de objetos
- Extracción de datos
- Automatización de imágenes y texto
- Acerca de la automatización de imágenes y texto
- Actividades con el ratón y el teclado
- Ejemplo de uso de la automatización de ratón y teclado
- Actividades de texto
- Ejemplo de uso de la automatización de texto
- Actividades de OCR
- Actividades de imagen
- Ejemplo de uso de la automatización de OCR y la automatización de imágenes
- Citrix Technologies Automation
- Automatización RDP
- Automatización de Salesforce
- Automatización SAP
- Automatización de VMware Horizon
- Registro
- La herramienta ScreenScrapeJavaSupport
- El protocolo WebDriver
- Conjunto de pruebas - Estudio
- Extensiones
- Solución de problemas
- Acerca de la resolución de problemas
- Compatibilidad y limitaciones de Microsoft App-V
- Solución de problemas de Internet Explorer x64
- Problemas de Microsoft Office
- Identificación de elementos de la interfaz de usuario en PDF con opciones de accesibilidad
- Reparar Soporte Active Accessibility
- Automatizar aplicaciones que se ejecutan en un usuario de Windows diferente
- Validation of large Windows-legacy projects takes longer than expected
Extensión para Java
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.
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.
You should install the Java extension from Studio or the command line only when the injection mechanism does not work, and when Java applications are using Java 3 to 8. For Java applications using Java 9 or greater, follow the steps described in Installing the extension in a custom folder.
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+.
.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.
La extensión de UiPath para Java se instala de la siguiente manera:
Desde Studio
- Cierra todas las aplicaciones Java en ejecución.
- Abre Studio.
- Navega a Herramientas > Extensiones de UiPath.
- 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
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.
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” />
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 instalar la extensión de UiPath para Java en una ubicación personalizada, realiza los siguientes pasos:
-
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
: ubicado en el directorio%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
.UiPathJavaBridgeV8.dll
yUiPathJavaBridgeV8_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.
-
El mecanismo de configuración de la extensión de Java que utiliza UiPath para instalar la extensión implementa los archivos
UiPathBridge.jar
yaccessibility.properties
en el directorio de instalación (normalmenteC:\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:- Para el archivo
UiPathBridge.jar
, deberás especificar la carpeta en la que copiasteUiPathBridge.jar
yUiPathJavaBridgev8.dll
(comoC:\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
. -
Para el archivo
accessibility.properties
, hay dos métodos:- Añade el parámetro
assistive_technologies=UiPath.UiPathBridge
al archivo de configuración globalaccessibility.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.
- Añade el parámetro
- Para el archivo
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 entornoJAVA_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:
-
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 deappletviewer.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
-
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.
-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:
- Añade
UiPathBridge.jar
yUiPathServiceProvider.jar
al classpath de la aplicación. -
Convierte
UiPathJavaBridgeV8.dll
yUiPathJavaBridgeV8_x64
en visibles paraUiPathBrdige.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.
- Situar los archivos en la misma carpeta, con
- 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 archivoUiPathJavaServiceProvider.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 paqueteUiPath.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
.
.jar
: java -jar SwingSet2.jar
Deben llevarse a cabo los siguientes pasos:
- 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
yUiPathJavaServiceProvider.jar
: ubicados en el directorio%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
.UiPathJavaBridgeV8.dll
yUiPathJavaBridgeV8_x64.dll
: ubicados en el directorio%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath
.
- 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, consideramosSwingSet2
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
.bat
o .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
exe
, debe buscarse una forma alternativa de cargar los archivos al classpath y especificar el parámetro de la tecnología de apoyo.
- 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.
- 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
.jnlp
se realiza de forma predeterminada debido a una actualización del mecanismo de inyección existente.
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ámetrosun.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.