Tenho uma classe que grava um arquivo específico para mim. Compilei um JAR com os componentes necessários e consigo rodá-la sem problemas com dois-cliques no windows. Ela requer um parâmatro e para resolver o problema, criei um "shortcut" onde coloco o parâmetro e ela roda bem.
Agora, quero chamá-la de uma outra classe Java. Após várias pesquisas no forum, vim com o código abaixo:
String [] alComando = {"C:/Program Files/java/j2re1.4.1_01/bin/java -jar",
"C:/Fly! II Workbench/sistema/gerarMetar.jar",
"C:/Fly! II Workbench/"};
try {
Runtime.getRuntime().exec(alComando);
// Runtime.getRuntime().exec(alComando).waitFor();
} catch (Exception runCommand) {System.out.println(runCommand.getMessage());}
Quando executo no Sun Studio 4, recebo a seguite mensagem:
CreateProcess: "C:/Program Files/java/j2re1.4.1_01/bin/java -jar" "C:/Fly! II Workbench/sistema/gerarMetar.jar" "C:/Fly! II Workbench/" error=2
Já utilizei as duas formas de Runtime acima, mas não consigo executar. Já tentei chamar sem o java -jar, indo direto para a parte com C:/Fly! II…, e a única diferença é que o código de erro é =193 em vez de =2.
Se puderem ajudar ficarei grato.
Finalmente eu encontrei onde o problema estava. Veja o código abaixo:
String [] alComando = {"C:/Arquivos de Programas/Java/j2re1.4.1_01/bin/java",
"-jar",
"C:/Fly! II Workbench/sistema/gerarMetar.jar",
"C:/Fly! II Workbench/"};
Eu estava passando "java -jar" na primeira ocorrência da array. Mas isto não funciona, cada componente do comando precisa estar numa ocorrência separada da array.