Executar main  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
velo
GUJ Ranger
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 797
Localização: Jaraguá do Sul - SC
Offline

Bom dia Pessoal,

Eu tenho uma aplicação que executa de tempos em tempos um programa externo (Runtime.getRuntime().exec("java - jar programa.jar").waitFor();

Reparem que é um programa em java.

Eu não posso simplemente pegar o main dessa outra aplicação e usar por eh um jar protegido, não open source, e cheio das travas... e tem um System.exit(0) no meio (o pessoal aqui do forum tentou alguma coisa, http://www.guj.com.br/posts/list/58908.java, mas quem fez o jar fechou todas essas portas).

Eu gostaria (e muito) de deixar a minha aplicação sem esse getRuntime, pois isso compromete um pouco a portabilidade... na verdade isso me encomoda por precisar de configuração... nem todo mundo tem o java no path....

Pergunto pra vocês, não tem com eu de dentro de uma aplicação java falar pra JVM executar esse jar numa nova instancia dela mesma?


Valeu!


VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
Giulliano
GUJ Master
[Avatar]

Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline

Eu não fiz um teste aqui...mas se vc chamar só por

(Runtime.getRuntime().exec("programa.jar").waitFor();

sem o java - jar.....e levando em consideração que a pessoa tem o jre na máquina, não funcionaria ????

Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi




<UnTouChAbLe>
[Email] [WWW] [MSN]
velo
GUJ Ranger
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 797
Localização: Jaraguá do Sul - SC
Offline

Naum.

Tipo, falta o path do jar e fica na dependencia do SO ser capaz ou naum de resolver isso.


VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
takeshi10
Java Ninja

Membro desde: 08/08/2004 23:05:25
Mensagens: 254
Localização: Brasil
Offline

hmm basta instanciar um novo classLoader com esse jar, instalar um SecurityManager que bloqueie a chamada a System.exit(), carregar a classe que contem o mais (por Classloader.loadClass( ... ) ) e executar (melhor via reflection) o metodo main dessa classe, usando os parametros necessarios

takeshi
velo
GUJ Ranger
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 797
Localização: Jaraguá do Sul - SC
Offline

Pior q a classe q eu uso verifica se o security manager foi setado..

Se foi lanca exception....

Fazer o q, vida dura.

VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team