Para chamar um novo aplicativo java dentro de outro já em execução eu uso o comando
String comando = "java -jar C:\caminho_de_aplicacoes\App2\app2.jar";
Process processo = Runtime.getRuntime().exec(comando);
Mas os dois aplicativos estão em pastas diferentes…
Ex: O aplicataivo mestre está em C:\caminho_de_aplicacoes\App1\app1.jar
e por sua vez o aplicativo que é chamado pelo mestre está em C:\caminho_de_aplicacoes\App2\app2.jar
Meu grande problema é… dentro do app2.jar tem algumas rotinas que busca arquivos de configuração que está dentro do seu próprio diretório… para isso eu uso File fl = new File(“configuracao.properties”)…
quando eu executo o app2 separado…ele busca o arquivo certo…mas quando o app1 chama o app2…ele vai buscar o arquivo configuração.properties dentro do diretório do app1 e não dentro do app2 que seria o correto…
dá para ver isso usando o System.getProperty(“user.dir”)… tanto na app1 quando na app2 ele retorna o caminho do app1 (isso quando o app2 é chamado em tempo de execução dentro do app1)…
Tem como fazer o app2 interpretar seu diretorio certo quando chamando de dentro do app1? ou terei que revisar todo o app2 e mudar o comando File fl = new File(“configuracao.properties”) por File fl = new File(“C:\caminho_de_aplicacoes\App2\configuracao.properties”)
Na verdade…seria executar uma nova instância do app2 totalmente separada de app1, mas parece que a vm não interpreta assim, ela leva as propriedades setadas no app1 junto pra app2