JRE juntamente com o JAR

4 respostas
R

Bom dia a todos, sou novo no fórum e acredito que aqui encontrarei uma solução para o meu problema, é o seguinte: tenho uma aplicação feita no netbeans com swing e que esta rodando perfeitamente, já criei o jar da minha aplicação onde roda normal somente com JRE instalado na maquina, pois é ai que esta minha duvida, esta aplicação utiliza o JRE 1.6 e somente roda neste JRE pois esse programa chama um outro programa em Matlab, as funções do programa em matlab somente é compatível com Java 1.6, pois bem, preciso que minha aplicação possa sempre rodar com JRE 1.6, uma solução seria juntamente com o jar do meu projeto tambem copiar os arquivos do JRE instalado na maquina e dizer ao meu jar que execute o JRE especifico que foi copiado, esta é minha duvida, não sei como dizer ao meu jar que execute em cima de um JRE especifico.
Agradeço desde já a todos

4 Respostas

E

Dica: se sua aplicação TEM de rodar com uma determinada JRE, distribua essa JRE junto com a aplicação, porque não é possível - só pondo uma tag no jar, ou seja, mudando algumas linhas no arquivo manifest.mf - forçar que o jar seja rodado com uma determinada versão.

O que você pode fazer, talvez, é:
a) Criar um instalador que localiza a versão correta da JRE (ou talvez que instale a versão correta da JRE também)
b) O instalador cria um shortcut que roda seu jar com a versão correta que ele localizou
c) Para evitar que alguém inadvertidamente rode seu programa .jar clicando duas vezes sobre ele, mude a extensão - o javaw.exe consegue rodar um .jar mesmo que ele não tenha a extensão .jar, bastando você indicar explicitamente como “java -jar seuprograma.com.outra.extensao.em.vez.de.jar.certo”

R

Obrigado pela resposta entanglement, eu ja fiz um teste e se o usuario instalar uma nova versão do java juntamente com a JRE que eu distribuir para ele, o programa da erro, pois ele roda na ultima versão do java setado na variavel de ambiente, é isso que eu quero evitar.

Por exemplo, na minha empresa nós temo um programa de relógio de ponto que registra a entrada e saida de funcionarios da empresa, esse programa é feito em java e na instalação do mesmo o JRE já vem embutido, se a maquina conter um outro JRE instalado o programa sempre ira utilizar o JRE que foi embutido junto com a aplicação.

É exatamente isso que quero fazer, mais não tenho a minima ideia de como fazer.

Agradeço a ajuda.

R

Ai galera pra quem tiver o mesmo problema que eu, consegui resolver utilizando o programa install4j na versão free, ele cria instaladores java para varias plataformas e inclui no diretório do projeto o JRE para utilização do seu programa, segue o link de download e a documentação:


http://www.ej-technologies.com/products/install4j/overview.html
http://resources.ej-technologies.com/install4j/help/doc/help.pdf

Obrigado

S

rodrigosalvador Tem como você me mandar o código que faz uma chamada para um programa em MatLab, pois
estou a procura faz algum tempo e não encontro. Agradeço desde já.

Criado 20 de março de 2013
Ultima resposta 11 de jan. de 2014
Respostas 4
Participantes 3