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

Guia do usuário do Studio

Última atualização 17 de dez de 2024

Extensão para Java

Versões Compatíveis

A Extensão Java é compatível com qualquer versão do JRE, do Java 3 ao Java 17.

Ao tentar indicar ou validar seletores em um aplicativo Java, o robô verifica se os arquivos de extensão estão carregados no processo do aplicativo de destino.

Os arquivos podem existir lá por meio de vários mecanismos:

  • tendo a extensão instalada no JRE (para Java 3 a 8) por meio do mecanismo de extensão.
  • carregando-os a partir de uma pasta personalizada (para Java 3 a 17, com diferentes etapas a seguir para Java 9+).

Se os arquivos de extensão não estiverem lá, um mecanismo de injeção é usado para tentar iniciar nossa ponte.

Observação:

O instalador de extensão Java incorporado no Studio (e também a ferramenta ScreenScrapeJavaSupport) depende do mecanismo de extensão para que a extensão seja carregada pelo JRE, para que possa ser usada para automatizar aplicativos baseados em Java executando com Java 3 a 8.

A partir do Java 9, o mecanismo de extensão foi descontinuado, e o instalador não consegue incluir os arquivos necessários no JRE. Esses arquivos devem ser carregados a partir de uma pasta personalizada (mais informações aqui).

A partir do pacote UIAutomation versão 22.2.0-preview, com o suporte do mecanismo de injeção padrão, não é mais obrigatório instalar a Extensão para Java para automatizar aplicativos baseados em Java.

Você deve instalar a extensão Java a partir do Studio ou da linha de comando somente quando o mecanismo de injeção não funcionar e quando os aplicativos Java estiverem usando Java 3 a 8. Para aplicativos Java usando Java 9 ou superior, siga as etapas descritas em Instalação da extensão em uma pasta personalizada.

Mecanismo de injeção

Até a versão 22.2.0-preview do UiPath.UIAutomation.Activities, o mecanismo de injeção não funcionava em todos os casos. Carregar a extensão a partir de uma pasta personalizada era o principal método usado para aplicativos lançados com Java 9+.

A partir da versão 22.2.0-preview do UiPath.UIAutomation.Activities, o mecanismo de injeção tornou-se mais confiável e é capaz de automatizar aplicativos que não podiam ser automatizados antes, como aplicativos .jnlp lançados com aplicativos de terceiros, como OWS ou IcedTea Web.

O mecanismo de injeção é usado por padrão e a instalação da extensão Java deve ser usada apenas como um método de backup.

Instalação da extensão no JRE a partir do Studio ou da linha de comando

Para Java 8 ou Anterior

A extensão UiPath para Java é instalada da seguinte forma:

Do Studio
  1. Feche todos os aplicativos Java em execução.
  2. Abra o Studio.
  3. Navegue até Ferramentas > UiPath Extensions.
  4. Selecione Java > Instalar. Uma mensagem de confirmação aparece, informando que a extensão foi instalada.
A partir da Linha de comando
Execute este comando C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java em uma janela de prompt de comando com direitos de administrador.

O Studio e o UI Explorer também pedem para instalar a Extensão UiPath para Java quando você tentar selecionar um controle dentro de um aplicativo Java e quando a ponte não é detectada. Se você optar por instalar a extensão UiPath para Java quando solicitado pelo UI Explorer, os arquivos do Java Bridge serão implantados apenas no diretório JRE que lançou o aplicativo Java de destino, em vez do diretório JDK.

Observação: Para instalar essa extensão, você deve ter direitos de administrador.

Para verificar se a extensão não está funcionando corretamente, abra o UI Explorer e tente selecionar controles dentro de um aplicativo Java. Se a janela inteira estiver selecionada, significa que a extensão não está funcionando corretamente.

Você pode dizer se a extensão está instalada corretamente ou não pelos seletores gerados para controles Java:

  • Seletor válido para controles Java: <wnd app=”...” /><java role=”...” />
  • Seletor Inválido para controles Java: <wnd app=”...” /><ctrl role=”client” />
Observação: a extensão UiPath para Java é compatível apenas com aplicativos AWT (por exemplo, Java Swing, Oracle Forms e Fujitsu JBK), enquanto que aplicativos SWT são automatizados com Active Accessibility. Para detectar o tipo de seu aplicativo Java, verifique o atributo cls (nome de classe de janela) no UI Explorer. O nome da classe deve ser semelhante a SunAwtFrame ou javax.swing.

Os processos podem interagir com aplicativos Java independentemente de sua escala de DPI.

A Extensão UiPath para Java também pode ser instalada usando a ferramenta ScreenScrapeJavaSupport.

Para Java 9 ou posterior

Use a instalação em uma pasta personalizada, conforme descrito na próxima seção.

Instalando a Extensão em uma Pasta Personalizada

Para Java 8 ou Anterior

Para ter a extensão UiPath para Java instalada em um local personalizado, execute as seguintes etapas:

  1. Crie uma nova pasta na sua máquina na qual você deseja instalar a Extensão UiPath para Java (como C:\UiPathJavaExt) e copie os seguintes arquivos para ela:
    1. UiPathBridge.jar - localizado no diretório %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    2. UiPathJavaBridgeV8.dll e UiPathJavaBridgeV8_x64.dll localizados no diretório %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath. Não é necessário copiar ambos os arquivos, mas pode evitar problemas que podem ocorrer devido à incompatibilidade de versões entre o JRE e o UiPathJavaBridge.
  2. O mecanismo de Configuração de Extensão do Java usado pelo UiPath para instalar a extensão implanta os arquivos UiPathBridge.jar e accessibility.properties no diretório de instalação do Java (geralmente C:\Program Files (x86)\Java\jre1.8.0_xx). Para usar a Extensão UiPath para Java a partir de uma pasta personalizada, a dependência para esses arquivos deve ser atenuada da seguinte maneira:
    1. Para o arquivo UiPathBridge.jar, você precisa especificar a pasta na qual você copiou UiPathBridge.jar e UiPathJavaBridgev8.dll (como C:\UiPathJavaExt) quando você iniciar o aplicativo Java que usa a extensão. Isso é feito por meio do argumento -Djava.ext.dirs = C:\UiPathJavaExt.
    2. Para o arquivo accessibility.properties, há dois métodos:
      • Adicione o parâmetro assistive_technologies=UiPath.UiPathBridge ao arquivo de configuração global accessibility.properties localizado no diretório %userprofile%. Observe que esse arquivo é diferente daquele implantado pela Extensão UiPath para Java, e suas configurações têm precedência sobre as que estão definidas pela instalação Java.
      • Use o argumento -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge quando você executar o aplicativo Java de destino.

As propriedades do sistema precisam ser passadas corretamente para o aplicativo Java de destino. Isso pode ser feito por meio de vários métodos:

  • Inclua a propriedade -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge do sistema na variável de ambiente _JAVA_OPTIONS. O JRE carrega as propriedades da variável de ambiente e da Extensão do UiPath para Java carregada no aplicativo de destino.
  • Use o 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 do prompt de comando. Uma mensagem de confirmação aparece indicando que a Extensão do UiPath para Java foi carregada com sucesso.
  • Inclua a propriedade -Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge do sistema na variável de ambiente JAVA_TOOL_OPTIONS. Observe que esse método funciona apenas com o Java 5 ou posterior.

A passagem de propriedades para um applet Java é feita com um dos seguintes métodos:

  1. Usando a aplicação appletviewer.exe.
    Este método requer que você crie primeiro o arquivo .java.policy na pasta %userprofile% e deve conter o seguinte:
    grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };grant { 
        permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; 
    };
    Após essa conclusão, o applet de destino precisa ser iniciado por meio de appletviewer.exe com 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. Usando o Painel de controle do Java que é entregue com o JRE.

    O Painel de controle Java permite que você especifique os parâmetros de runtime para cada JRE. Dessa forma, é necessário que você especifique o

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

    parâmetro do miniaplicativo de destino. Isso faz com que a Extensão UiPath para Java seja carregada sempre que o applet Java for iniciado.

A tabela abaixo apresenta a compatibilidade entre os métodos usados acima, versões Java e diferentes tipos de aplicativos Java:

Tipo de Aplicativo

_JAVA_OPTIONS

JAVA_TOOL_OPTIONS

Parâmetros de Linha de Comando

Painel de controle Java - Parâmetros de Runtime

Aplicativo para Computadores do Java

Java 3 para Java 8

Java 5 para Java 8

Java 3 para Java 8

Não Compatível

Aplicativo Contido do Java (.exe)

Java 3 para Java 8

Java 5 para Java 8

Java 3 para Java 8 (1)

Não Compatível

Applet Java

Java 3 para Java 8

Java 5 para Java 8

Não Compatível

Java 3 para Java 8

Formulários do Oracle Java

Não Compatível

Não Compatível

Não Compatível

Não Compatível

(1) - Dependendo da ferramenta de linha de comando que você usar, os parâmetros adicionais podem ser passados por meio das variáveis de ambiente.

Para Java 9 ou posterior

A partir do Java 9, o Mecanismo de Extensão Java é removido, o que significa que o argumento -Djava.ext.dirs não pode ser usado em aplicativos com Java 9 e superiores.

A ideia principal por trás do carregamento da extensão pode ser dividida em 3 requisitos:

  1. Adicione o UiPathBridge.jar e UiPathServiceProvider.jar ao classpath do aplicativo.
  2. Torne UiPathJavaBridgeV8.dll e UiPathJavaBridgeV8_x64 visíveis para UiPathBrdige.jar. Isso pode ser feito de diversas maneiras:
    • colocar os arquivos na mesma pasta com UiPathBridge.jar;
    • colocar os arquivos na pasta acima UiPathBridge.jar;
    • adicionar os dois arquivos a uma pasta e referenciar seu caminho por meio de uma variável de ambiente chamada UIPATH_JB_PATH;

      Não é necessário fazer referência a ambos os arquivos, mas isso pode evitar problemas que podem ocorrer devido à diferença de versão entre JRE e o UiPath Java Bridge.

  3. Configure o aplicativo para carregar a tecnologia adaptativa. Isso é feito através do arquivo accessibility.properties, que é colocado dentro dos JREs.
    Observação: o arquivo UiPathJavaServiceProvider.jar está disponível nos pacotes mais recentes do UiPath.UIAutomation.Activities (mais recentes que o 21.2-preview). Se você estiver usando uma versão inferior do UIAutomation, o arquivo pode ser obtido atualizando temporariamente um arquivo de fluxo de trabalho vazio para a versão 21.2-preview. Isso gera a desempacotamento de uma versão mais recente do pacote UiPath.nuget na máquina do usuário (%UserProfile%\.nuget\packages\uipath). Após obter o arquivo, pode ser feito o downgrade no pacote para a versão usada antes da atualização.

Atender aos requisitos acima depende diretamente da forma como o aplicativo Java é iniciado. Há 3 maneiras comuns de iniciar o aplicativo e carregar a extensão.

Aplicativos iniciados a partir de arquivos .jar, .bat, ou .ps1

Vamos considerar o caso simples em que o aplicativo é iniciado diretamente dos arquivos .jar simples: java -jar SwingSet2.jar

As seguintes etapas precisam ser realizadas:

  1. Crie uma nova pasta na sua máquina na qual você deseja instalar a Extensão UiPath para Java (como C:\UiPathJavaExt) e copie os seguintes arquivos para ela:
    • UiPathBridge.jar e UiPathJavaServiceProvider.jar- localizados no diretório %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport.
    • UiPathJavaBridgeV8.dll e UiPathJavaBridgeV8_x64.dll- localizados no diretório %UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath.
  2. Adicione a pasta criada anteriormente ao classpath do aplicativo Java de destino. Isso é feito com o comando -cp, -classpath. Para esse exemplo, consideramos SwingSet2 como o aplicativo 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

Se o aplicativo for iniciado por meio de um arquivo .bat ou .ps1, então o arquivo deve ser analisado com um editor de texto. O arquivo que inicia o aplicativo contém uma linha semelhante ao comando java -jar SwingSet2.jar, mas também inclui muitos outros parâmetros. O comando pode ser alterado para incluir os arquivos no classpath e especificar o parâmetro da tecnologia adaptativa. Alterações dentro desses arquivos devem ser feitas com cuidado. Em alguns casos, o classpath e os parâmetros adicionais são escolhidos de variáveis de ambiente, que é um método menos invasivo.

Aplicativos iniciados de arquivos .exe

Quando o aplicativo é iniciado por um arquivo .exe você deve encontrar uma maneira alternativa de carregar os arquivos para o classpath e especificar o parâmetro da tecnologia adaptativa.
  1. Para carregar os arquivos do classpath, você pode pesquisar por variáveis de ambiente que são lidas pelo executável, ou por arquivos de configuração que especificam onde as dependências são carregadas. Não há nada que seja padrão aqui, e depende muito do nível de personalização do executável.
  2. A tecnologia adaptativa pode ser especificada neste caso de maneira similar àquela usada pelo instalador de extensão. O arquivo padrão accessibility.properties, pode ser movido para a pasta %UserProfile% e renomeado para .accessbility.properties.

Aplicativos iniciados de arquivos .jnlp

A partir do UiAutomation v22.2, a interação com aplicativos do .jnlptipo é feita por padrão devido a uma atualização do mecanismo de injeção existente.

Suporte a Dimensionamento no Aplicativo

O dimensionamento tem suporte total em aplicativos Java 9+ através de parâmetros. Considere adicionar os parâmetros a seguir ao aplicativo Java que deseja automatizar, a fim de habilitar o suporte ao dimensionamento:

  • sun.java2d.uiScale.enabled ─ Quando não utilizado ou definido como o valor exato da string de "true", ele será considerado como verdadeiro e a seguinte configuração de dimensionamento será levada em consideração. Quando definido com qualquer outro valor, mas "true" (tais como True, false, False, abc), então ele será considerado como falso e não serão feitos ajustes de dimensionamento adicionais.
  • sun.java2d.uiScale - Os valores podem ser passados em três formas:
    • Como um índice (0,5, 2,3, 1,5)
    • Como porcentagens (100%, 150%)
    • Como valores de dpi (96 dpi, 120 dpi). O valor será considerado se o dimensionamento estiver habilitado. Ele modifica o dimensionamento em ambos os eixos.
  • sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY Os valores podem ser passados quando ao parâmetro sun.java2d.uiScale. Ambos são necessários para serem considerados pelo aplicativo Java. Eles são mais específicos do que a configuração geral do dimensionamento. Como tal, se todos os três parâmetros estiverem definidos, somente esses serão considerados.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.