Inicie o programa Java apenas se ainda não estiver executando o
Preciso iniciar 1-3 programas externos no meu aplicativo Java que possuam caminhos definidos pelo usuário. Eu tenho alguns requisitos:
Não quero que o programa seja executado se já estiver em execução
Não quero que nenhum dos programas roube o foco do meu aplicativo Java
Eu não me importo se algum deles falhar ao iniciar ou não. Eles só precisam falhar silenciosamente.
Aqui está o que eu criei até agora:
ProcessBuilder pb = new ProcessBuilder(userDefinedPath1);
try {
pb.start();
}
catch (Exception e) {
// Something went wrong, just ignore
}
E depois repito mais três vezes com os outros dois caminhos. Isso começa como eu esperaria e atende ao meu terceiro requisito, mas falha nos dois primeiro
Qual é a melhor maneira de fazer isso?
Editar
Não tenho controle sobre esses outros aplicativos. Eles são de terceiros. Além disso, eles poderiam ter sido iniciados ou interrompidos pelo usuário manualmente a qualquer moment
Eu conheço oexat nomes dos executáveis (por exemplo, "blah.exe") e eles serãosempr seja o mesmo, mas os caminhos para os executáveis não serão necessariament
Wrappers de arquivos em lote não são viáveis aqu
Os outros aplicativos sãonãplicativos java, simples executáveis antigos do Window