Java Web Start
O objetivo deste artigo é apresentar o Java Web Start (JWS), um produto da Oracle que permite que o usuário instale e inicie aplicações Java direto do navegador com apenas um clique. O software Java Web Start permite ativar aplicativos facilmente e oferece a garantia de que sempre esteja sendo executada a versão mais recente do aplicativo, eliminando os procedimentos de instalação ou atualização. O JWS está incluso no Java Runtime Environment (JRE) a partir da versão Java 5.
O software Java Web Start é iniciado automaticamente quando é feito o primeiro download de um aplicativo Java que utiliza essa tecnologia. O Java Web Start armazena todo o aplicativo localmente, na memória cache do computador. Assim, todas as inicializações subseqüentes são quase instant neas, pois todos os recursos necessários já estão disponíveis localmente. Toda vez que o aplicativo é iniciado, o software Java Web Start acessa o site do aplicativo para verificar se há uma nova versão disponível. Se houver, ele fará o download e iniciará a nova versão automaticamente.
1. Desenvolvendo um pequeno sistema Desktop
Para começar, vamos criar um aplicativo simples, o qual em seguida será executado pelo Java Web Start. Veja na Listagem 1 o código do aplicativo que irá listar em uma tabela os estados brasileiros.
package com.wp.mb.appdesktop;
import java.awt.*;
import javax.swing.*;
public class AppDesktop {
private JScrollPane scrollPane;
private JTable table;
private JFrame frame;
private JLabel imagem;
public AppDesktop() {
frame = new JFrame("Lista de Estados Brasileiros");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] colunas = {"Posição", "Estado", "Área urbana (km²)"};
String[][] linhas = getEstados();
table = new JTable(linhas, colunas);
table.setSize(new Dimension(400, 200));
scrollPane = new JScrollPane(table);
frame.add(scrollPane, BorderLayout.CENTER);
imagem = new JLabel();
frame.setSize(500, 250);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
private String[][] getEstados() {
String[][] dados = {
{"1º", "São Paulo", "4.971"},
{"2º", "Minas Gerais", "2.525,8"},
{"3º", "Rio Grande do Sul", "1.647"},
{"4º", "Paraná", "1.603,7"},
{"5º", "Rio de Janeiro", "1.479,9"},
{"6º", "Goiás", "1.113,6"},
{"7º", "Santa Catarina", "878,2"},
{"8º", "Bahia", "762,9"},
{"9º", "Pará", "730,6"},
{"10º", "Distrito Federal", "621"},
{"11º", "Mato Grosso", "519,7"},
{"12º", "Maranhão", "512,3"},
{"13º", "Pernambuco", "511,4"},
{"14º", "Ceará", "471,2"},
{"15º", "Mato Grosso do Sul", "441,3"},
{"16º", "Espírito Santo", "427,6"},
{"17º", "Amazonas", "395,1"},
{"18º", "Paraíba", "319,6"},
{"19º", "Piauí", "277,1"},
{"20º", "Rio Grande do Norte", "269,6"},
{"21º", "Rondônia", "226,1"},
{"22º", "Alagoas", "202,1"},
{"23º", "Sergipe", "118,7"},
{"24º", "Tocantins", "99,6"},
{"25º", "Amapá", "69,3"},
{"26º", "Acre", "49,5"},
{"27º", "Roraima", "40,6"}
};
return dados;
}
public static void main(String[] args) {
int op = JOptionPane.showConfirmDialog(
null, "Deseja continuar?", "",
JOptionPane.YES_NO_OPTION
);
if (op == JOptionPane.YES_OPTION) {
AppDesktop frame = new AppDesktop();
}
}
}
2. Criando o arquivo JNLP
O .jnlp é um arquivo de documento com tag’s em XML que contém as configurações necessárias para que o Java Web Start, já na máquina do cliente, obtenha e execute os arquivos JAR da aplicação. Ele funcionar como se fosse um arquivo executável, que através de um clique busca por uma URL o local onde se encontra depositado o arquivo JAR da aplicação que deve ser executada. Veja na Listagem 2 a configuração que será utilizada no arquivo desktop.jnlp para executar a aplicação da Listagem 1.
My First Java Web Start - Desktop Programando com Java Exibe lista de estados brasileiros.
Todas as tags de configuração devem ficar dentro da tag root e cada tag do arquivo possui um objetivo especifico, veja a seguir:
- SPEC: o atributo spec (especificação) pode ser 1.0, 1.5.0 ou 6.0 ou pode usar os curingas, tais como 1.0 +. Denota a versão mínima da Especificação JNLP que este arquivo jnlp pode trabalhar;
- CODEBASE: este atributo recebe a URL de onde se encontra o arquivo .jnlp. Geralmente será o caminho de um servidor web;
- HREF: aqui deve ser inserido o nome do arquivo .jnlp depositado no servidor;
-
INFORMATION: podemos ter dentro desta tag varias outras tags que tem como objetivo informações como, descrição, titulo, entre outras. Um dessas tags a
permite que o arquivo seja executa com a maquina cliente off-line; - RESOURCES: aqui descrevemos a versão mínima do Java para a execução da aplicação e também o local onde se encontra a aplicação;
- APPLICATION-DESC: local onde deve ser informada a classe principal da aplicação;
- UPDATE: aqui se informa se a aplicação deve ser atualizada quando houver atualização nos arquivos depositados no servidor.
Observações:
-
Se você não quer permitir que o usuário execute a aplicação off-line, remova a tag
<offline-allowed>; -
Se o seu projeto possui mais de um JAR, adicione mais tags correspondentes em resources, marcando uma delas como sendo o JAR correspondente a classe principal da aplicação (
main="true").
Na Listagem 3 temos um exemplo de arquivo HTML para realizar o download do arquivo desktop.jnlp. Nesse arquivo em especial, vamos usar duas tags de JavaScript que possuem comunicação com os servidores da Oracle e disponibilizam um botão padrão para o download. Não é necessário usar essa configuração, você pode fazer a que desejar, como apenas exibir o link sem um botão.
Pagina de teste para download do arquivo JNLP
Pagina de teste para download do arquivo JNLP
3. Desenvolvendo uma aplicação Web Simples.
Vamos simular que o arquivo JNLP esteja em um servidor Web, para isso iremos criar uma aplicação web bem simples e executá-la para então ser exibida a página HTML com o botão de download. Crie uma aplicação web e no diretório root da aplicação adicione os arquivos: desktop.jnlp e desktop.html. Na página índex, adicione o código:
<% response.sendRedirect("desktop.html"); %>
Veja na Figura 1 a disposição dos arquivos na estrutura da aplicação web:
4. Executando o projeto
Para executar o projeto crie um arquivo JAR da aplicação AppDesktop (Listagem 1). Esse será o arquivo que iremos executar após o download do JNLP. Devemos definir um local onde ele estará depositado. Vamos adicioná-lo dentro da aplicação web, no diretório file, como demonstrado na Figura 1. Se você quiser pode também colocá-lo em um diretório no seu HD, para isso vai precisar modificar a URL existente em resources do arquivo desktop.jnlp, por exemplo, se adicioná-lo em C:\Arquivos\ use a seguinte URL: file:///C:\ Arquivos\AppDesktop.jar.
Caso algum erro aconteça, o que não deve ocorrer nesse exemplo, após a execução do arquivo baixado, teríamos uma tela relatando o erro, veja na Figura 2. Para visualizar os detalhes do erro, clique no botão “Detalhes”.
Saiba mais
- JNLP File Syntax http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html
- Oralce Lesson: Java Web Start http://download.oracle.com/javase/tutorial/deployment/webstart/index.html



