[RESOLVIDO]Classpath após executar jar externo

12 respostas
gmmascarin

Pessoal

Minha aplicação tem um botão que abre outro sistema (aplicação externa), chamando o jar dela.

Assim:

Process p = Runtime.getRuntime().exec("cmd.exe java -Xms256m -Xmx512m -XX:MaxPermSize=256m -jar C:\\AplicacaoExterna\\aplicacaoExterna.jar " + servidor.getCodOperador());

Essa nova aplicação carrega algumas imagens e arquivos de configuração da seguinte maneira:

File file = new File( "conf/sigachat.cfg");
File file = new File( path.getAbsolutePath() + File.separator + "conf/sigachat.cfg");

O meu problema está no path.getAbsolutePath(), pois ele me retorna o path da primeira aplicação. Alguém sabe como faço para descobrir o path da aplicação externa?

Obrigado

12 Respostas

mauricioadl

quando vc chama a sua segunda aplicacao, vc ja tem o path dela, se nao vc nao a conseguiria chamar.

C:\AplicacaoExterna\aplicacaoExterna.jar

gmmascarin

Sim, eu tenho. Mas eu preciso pegar o path de dentro da aplicação. Não posso passar ela como parâmetro da linha de comando.

Valeu

mauricioadl

perae, deixa eu entender entao:

se vc quiser o path da primeira aplicacao, vc da um getAbsolutPath() e obtem ele.

se vc quiser o da segunda aplicacao, vc usa o caminho que vc usou para chama-la.

se vc quiser o path da primeira aplicacao na segunda aplicacao, somente passando por parametro.

gmmascarin

É assim:

se quero o path da primeira aplicacao, dou um getAbsolutPath() e obtenho-o.

se quero o path da segunda aplicação não consigo. Eu abro a segunda aplicação com base em arquivo .properties que fica no path da primeira aplicação.

se quero o path da primeira aplicacao na segunda aplicacao, eh só dar um getAbsolutePath().

O que ocorre é que o getAbsolutePath() sempre me retorna o path da primeira aplicação, indenpendente de qual aplicação estou executando. Eu preciso do path da segunda aplicação quando ela tiver em execução (obs: a empresa não autoriza passá-la como parâmetro).

Valeu

mauricioadl

se na segunda aplicacao vc der um new File("").getAbsoluthPath(); ele vai trazer o da primeira aplicacao?

certeza?

gmmascarin

Sei que tá meio confuso de entender. São restrições aqui da empresa.

Preciso apenas de um meio de recuperar o path da segunda aplicação através de algo do tipo getAbsolutePath().

Obrigado

gmmascarin

certeza absoluta…Infelizmente…rsrs

mauricioadl

tenta assim:

new File("").getClass().getResource("/")

mauricioadl

cara, nao sei se isso eh um bug da jvm ou da classe file ou se realmente é um bug. mas ele sempre traz o endereco de onde a aplicacao foi chamada.

esse comando que te passei acima funciona, mas ele gera resultados diferentes de dentro do eclipse e de quando chama ele do console do sistema operacional.

mas da pra fazer.

abrax

gmmascarin

Maurício,

Obrigado pela ajuda

mauricioadl

conseguiu resolver? como?

coloca [RESOLVIDO] no titulo

gmmascarin

Infelizmente não consegui pegar o path da segunda aplicação da maneira como queria. Tive que passar no argumento da linha de comando o caminho da aplicação.

Valeu

Criado 27 de setembro de 2011
Ultima resposta 29 de set. de 2011
Respostas 12
Participantes 2