Boa tarde, gostaria de ver se algum sabe como o eclipse faz aquela busca e avisa quando não tem nenhum JRE instalado no computador,
é que gostaria de fazer igual com minha aplicação, quando o usuario tentar abrir e o jre não estiver instalado ele mostra a mensagem.
Se alguem poder me ajudar ficarei grato.
Obviamente isso não pode ser feito em Java.
O Eclipse consegue fazer isso porque o “eclipse.exe” é uma aplicação em C (ou C++, não cheguei a inspecionar os fontes do Eclipse) que faz essa tal busca pela JVM (consultando algumas entradas do Registry) e então inicia o Java, usando essa informação e carregando a “jvm.dll”.
Como isso é bastante complicado, não fique “empacado” nisso (a menos que você queira ler os fontes em C/C++ que fazem parte dos fontes do Eclipse). É melhor que você gaste seu tempo com outras coisas.
Para fazer buscas pelo registro vc pode utilizar a api JNIRegistry. Esta API permite vc buscar, alterar e salvar informações no registro do windows, basta apenas vc saber quais são as chaves que o jdk cria na sua instalação, para poder verificar a instalação do mesmo. Segue abaixo o link da API:
http://www.trustice.com/java/jnireg/index.shtml
Mas se a máquina do cliente não tiver nenhuma jvm instalada, então logicamente sua aplicação não irá rodar, vc pode utilizar essa API para fazer uma verificação da versão da jvm instalada e pedir para o usuário instalar uma versão mais atual, por exemplo. Para resolver o seu problema vc pode criar um instalador para sua aplicação e no processo de instalação fazer uma busca pelo registro para verificar se a jvm está instalada. Um instalador que já utilizei e recomendo, é o NSIS:
Sugestão:
use o Launch4j para gerar um executável.
Ele faz exatamente isto que você está querendo.
Caso não haja uma JVM instalada ele irá disparar uma mensagem para o usuário o informando disto.