Eu estou rodando o Fedora 22 (Linux) e tenho um aplicativo Java escrito por outros que eu quero enviar as teclas digitadas. Eu tentei usar xdotool de várias maneiras, mas eu não posso definir o foco para o aplicativo Java nem enviá-lo pressionamentos de teclas.
O aplicativo é iniciado com javaws com a seguinte linha de comando:
javaws -J-XX:MaxPermSize=512M -J-d64 -J-Xms1G -J-Xmx1G /path/to/java/file
Minha primeira tentativa de enviar as teclas digitadas foi com este comando:
xdotool search --name 'Window title' windowraise windowfocus --sync key H e l l o Return
Mas nada aconteceu. A janela Java não ganhou foco ou viu minhas teclas digitadas.
Então eu procurei o PID do processo Java e tentei identificar o processo pelo seu PID.
xdotool search --pid 1234 windowraise windowfocus --sync key H e l l o Return
O mesmo resultado. Finalmente, tentei identificar a janela com 'selectwindow'.
xdotool selectwindow windowraise windowfocus --sync key H e l l o Return
Após a emissão do comando, o cursor mudou para um quadrado. Mudei o mouse para a janela Java e cliquei, mas isso também não funcionou.
Para investigar mais, executei um aplicativo Java diferente com o seguinte comando:
java -jar appname.jar
O xdotool não pôde definir o foco ou enviar pressionamentos de teclas para esta janela.
Depois de ler a documentação do xdotool, sei que alguns programas não aceitam sua entrada. Existe algo que eu possa fazer, como passar diferentes argumentos de linha de comando, para esses aplicativos Java para que eles possam ouvir as teclas digitadas no xdotool?
Aqui estão algumas informações sobre as versões do Java e do xdotool que estou executando:
$ java -version
openjdk version "1.8.0_65-debug"
OpenJDK Runtime Environment (build 1.8.0_65-debug-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01-debug, mixed mode)
$ xdotool --version
xdotool version 2.20110530.1