JRE dentro do jar

Estou desenvolvendo uma aplicação em java que será utilizada por usuários do estado (PR) inteiro, o que inviabiliza a instalação manual, máquina por máquina do JRE. Alguém poderia me uma dica de como automatizar a instalação do java.
Desde já agradeço a todos.

Não é o caso de fazer uma aplicação WEB??

O ideal é que você instale o JRE apenas se vc for utilizar JWS(Java Web Start), caso sua utilização esteja baseada em aplicações desktop, recomendo copiar o JRE junto com sua aplicação e fazer uma referência apenas. Existem ferramentas pagas que automatizam este processo(uma delas é o install4j caso esteja interessado).

Porém, como você falou de Estado, suponho que apenas sejam permitidos softwares free. Então o que eu recomendo são umas das soluções:

1 - Criar uma aplicação Web, isto não exige a instalação do JRE.

2 - Distribuir cds com a instalação de sua aplicação + JRE.

3 - Instalação via internet do JRE(Direto da Sun ou dos seus servidores). Esta opção é a mais custosa em termos de banda e performance.

[]'s

Uma vantagem de usar o instalador do JRE da Sun é que ele tem um modo “silent”:
http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/silent.html

Alguns pontos para complementar o post do thingol:

1 - Silent mode funciona apenas no Windows(32 bits).
2 - Você deve prever o comportamento das estações(firewall, proxy, etc);
3 - Você está alterando o ambiente do usuário.

Se estes pontos não forem um problema em seu projeto, esta é uma boa opção.

Ps: Alguns dos pontos acima se encaixam nas opções que eu tinha dado anteriormente.

[]'s

Olá

Já trabalhei em uma aplicação que foi instalada no Brasil inteiro, inclusive em lugares no meio da selva com acesso só com barco.

Quando a gente usa Java isto não é problema algum.

  1. Quando o local tem acesso à Internet, a instalação é feita normalmente baixando do nosso servidor ou da Sun

  2. Quando o local não tem acesso à Internet, se pode enviar um CD (R$ 1,00) pelo correio (menos de R$1,00) contendo o JRE mais instruções e arquivos scripts de instalação.

Sugiro fortemente que use as últimas versões e não aquela versão esquecida no servidor da empresa.

JRE dentro do JAR não tem sentido.

[]s
Luca

É bom usar algum instalador “profissional” como o NSIS ( http://nsis.sourceforge.net/Main_Page ; gratuito, open-source, mas usado pelos desenvolvedores do Google para empacotar o Picasa e o Google Talk ) se você for instalar sua aplicação em uma máquina Windows (como suponho que seja a maioria dos computadores).
Esse instalador pode até checar se a máquina tem capacidade para rodar o Java - por exemplo, digamos que você precise de rodar sua aplicação em Windows 2000, XP, 2003 ou Vista, e que ela deva ter mais de 128 MB de memória e 50 MB de espaço em disco livres.
Isso você pode especificar para que o instalador não falhe misteriosamente durante a instalação.

++

A propósito: mesmo que digam que “ah, o Java 6.0 não está homologado, você vai ter de usar o 1.3.1_16 ou coisas parecidas, alegue que “o Java 6.0_u2” está com as últimas atualizações de segurança e desempenho” e coisas parecidas.

Normalmente o pessoal se “pela de medo” quando você fala de problemas de segurança, e você pode argumentar que versões mais antigas também vão sofrer mais rapidamente o processo de “end-of-life” (quando a Sun retira completamente o suporte, como é o caso da versão 1.3).

Veja se eles não inventam gracinhas do tipo gravar a aplicação em um CD daqueles pequenos (parecem um descanso de copos), que contém no máximo 100 MB e são mais caros. (Aí você tem de se virar para pôr sua aplicação e também um vídeo de explicação - não cabe tudo lá dentro).

Gravem em um CD normal, que é muito mais barato, e pode ser usado em qualquer máquina, mesmo naquelas (como Macs) que têm leitores de CDs sem gavetinhas (com slots).