thiagowfx's avatar

¬ just serendipity 🍀 (not just serendipity)

Como rodar JNLP no Linux

• 530 words • 3 min • updated

⚠️ This post is over one year old. It may no longer be up to date or relevant. Opinions may have changed.

Da série “quem ainda precisa de Java nesses tempos sombrios”?

Esse post é mais um post do estilo do Everyday Linux User Blogdo que um “faça isso e aquilo e agora rode seu JNLP”. Assim é mais legal e divertido (:

Já que toda boa história tem um *background:*recentemente (a.k.a. hoje) começou o curso Linear and Integer Programming no Coursera, e o pessoal da MathWorks resolveu distribuir a licença do MatLab de graça por um período de alguns meses para os e-alunos que resolverem fazer o curso.

O problema é que para instalar o MatLab precisamos de…Java! Pelo menos para baixar o instalador. Eu não sei se após isso ele é necessário. Bom, baixei um arquivo bem sugestivo chamado “download_agent” para fazer isso.

Faz muito tempo que não clico duas vezes em um arquivo executável pelo gerenciador de arquivos (no meu caso era o Thunar), mas resolvi fazer isso só para ver no que ia dar. Abriu uma página do Firefox com todo o código fonte do que eu descobri ser um arquivo JNPL. Para quem não conhece, isso é um arquivo do Java Web Start.

Então eu procedi da maneira tradicional, certo?

shell
chmod +x download_agent && ./download_agent &

Mas isso naturalmente não deu certo (e nem era para dar, pois isso não é um script). Qual a segunda opção mais intuitiva?

shell
java download_agent

Muito bem. Mas isso também não funcionou. Esse não é um arquivo em Java, mas sim um Java Web Start (a.k.a. JWS). O que fazemos? Consultamos o oráculo, é claro. A resposta dele é que eu preciso de um arquivo chamado javaws. Fui ver se ele estava instalado e logo me decepcionei.

Se você não sabe qual pacote utilizar, o que você faz? Que tal…pesquisar no Google? Bom, essa é uma boa opção, mas há um método mais inteligente e elegante (como os matemáticos gostam de dizer). Se você sabe usar bem o gerenciador de pacotes (package manager) da sua distro, basta você perguntar a ele: ó meu gerenciador, qual pacote tem o arquivo javaws??

Faça isso da forma que ele entenda, por favor =P

No Arch Linux, use pkgfile javaws e você vai ter o seguinte output:

extra/bash-completion
extra/icedtea-web-java7
community/cuda
community/processing

Com um pouco de bom senso (ou experiência?) você sabe que o pacote que você quer é o icedtea-web-java7. E aproveita a “rolling releaseness” para ficar com a versão mais atualizada (-;

Se você usa uma distro com apt-get (Ubuntu, Linux Mint, Elementary OS, …), se não me engano o comando

shell
apt-file run javaws

provavelmente vai retornar os pacotes que te interessam. Não tenho certeza, se não for isso, pesquise! Com o yum (Fedora), acho que a versão do comando é:

shell
yum whatprovides javaws

E no openSUSE, muito provavelmente:

shell
zypper wp javaws

Sinto muito por não poder confirmar os últimos 3 comandos, atualmente não estou com essas distros instaladas, mas isso é o que me veio à memória agora.

Depois de encontrar o pacote mais adequado, instale-o!

shell
sudo apt-get install nome_do_pacote
shell
sudo yum install nome_do_pacote
shell
sudo zypper in nome_do_pacote

E então rode o programa JNLP com:

shell
gksudo javaws download_agent

E seja feliz.

Obrigado por ler.