Olá…
Meu problema é o seguinte…
Estou executando um comando no sistema operacional…
e… bem, há comandos que eu executo mas não faz nada no sistema,
são os comandos “cat arquivo.txt > /dev/lp0” no Linux e “copy arquivo.txt LPT1”. Quando executo esses comandos meu programa fica parado…
aguardando… se olho na lista de processos do OS, o comando está sendo executado, mas nada acontece… se faço na mão direto no OS funciona.
Outros comandos como “notepad.exe” no Windows e “kprinter” no Linux funcionam certo… mas cat e copy dá esse problema…
Se alguém tiver uma dica… agradeço…
Segue o fonte…
/**
Executa comando no Sistema Operacional
@param as_command
Comando a ser executado no Sistema Operacional.
@return
String contendo o retorno do comando executado, se retorno for ‘null’
indica que houve erro ao executar o comando.
*/
public static
String Command(String as_command){
//
// Guarda o retorno do comando executado no sistema.
//
String
ls_retorno = "";
try{
//
// Abre um terminal com o sistema operacional...
//
Runtime
lo_run_time = Runtime.getRuntime();
//
// Executa o comando e guarda o processo...
//
Process
lo_prcs = lo_run_time.exec(as_command);
//
// Área de entrada de dados que guarda o retorno do comando executado...
//
InputStreamReader
lo_isr = new InputStreamReader(lo_prcs.getInputStream());
//
// Buffer com o retorno do comando...
//
BufferedReader
lo_buffer = new BufferedReader(lo_isr);
//
// Laço que percorre o buffer lendo as linhas retornadas pelo comando...
//
String line;
while ((line = lo_buffer.readLine()) != null)
{
ls_retorno += line;
}
//
// Se não houve erro, is_erro fica nulo...
//
is_erro = null;
}catch(java.io.IOException ioe){
//
// Alimenta com o erro ocorrido...
//
is_erro = ioe.getMessage();
//
// Seta null no retorno do comando, indicando que houve erro na execução do comando...
//
ls_retorno = null;
}
return ls_retorno;