Olá Galera,
Estou encontrando grandes dificuldades para executar uma jar no Linux
. Tenho uma classe com um método responsável por executar comandos no console:
public void ExecutaComando(String Comando) {
String Retorno;
this.RetornodoComando = new StringBuffer();
this.ErrosdoComando = new StringBuffer();
try {
Process Processo = Runtime.getRuntime().exec(Comando);
InputStream StreamEntrada = Processo.getInputStream();
InputStream StreamErro = Processo.getErrorStream();
BufferedReader SaidadoProcesso;
SaidadoProcesso = new BufferedReader(new InputStreamReader(
StreamEntrada));
while ((Retorno = SaidadoProcesso.readLine()) != null) {
this.RetornodoComando.append(Retorno + "\r\n");
}
SaidadoProcesso = new BufferedReader(new InputStreamReader(
StreamErro));
while ((Retorno = SaidadoProcesso.readLine()) != null) {
this.ErrosdoComando.append(Retorno + "\r\n");
}
Processo.waitFor();
SaidadoProcesso.close();
StreamErro.close();
StreamEntrada.close();
Processo.getOutputStream().close();
} catch (IOException MensagemdeErro) {
this.ErrosdoComando.append(MensagemdeErro.toString());
} catch (InterruptedException MensagemdeErro) {
this.ErrosdoComando.append(MensagemdeErro.toString());
}
}
Passo os argumentos assim, para um método que executa então os comandos chamando a classe acima:
String[] args = new String[3];
args[0] = "java";
args[1] = "-jar";
args[2] = caminhoDoJar;
executaArrayArgumentos(args);
Método que executa os comandos:
private void executaArrayArgumentos(String[] Argumentos)
{
String Comando="";
for ( int i=0; i<Argumentos.length; i++ )
{
Comando = Comando + Argumentos[i];
if ( i < (Argumentos.length-1))
Comando = Comando + " ";
}
System.out.println("Comando: '" + Comando + "'\n");
ComandosConsole ExecutordeComandos = new ComandosConsole();
ExecutordeComandos.ExecutaComando(Comando);
System.out.println("Retorno: '" + ExecutordeComandos.PegaRetorno() + "'\n"); //stdout
System.out.println("Erros: '" + ExecutordeComandos.PegaErros() + "'\n"); //stderr
}
Acontece que pego o retorno (EXATAMENTE IGUAL) e executo via console e dá certo. Mas pela aplicação não funfa!
Alguém já conseguiu executar um jar através da applicação no linux :?: Pelamordedeus me ajudem!!!