Problema ao executar comando no sistema operacional.  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
isaac
JavaChild

Membro desde: 24/12/2002 08:55:13
Mensagens: 116
Offline

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;
wbsouza
JavaEvangelist
[Avatar]

Membro desde: 11/09/2002 11:19:13
Mensagens: 412
Localização: São Paulo / SP
Offline

crie uma Thread para executar o comando.

[]s, Welington B. Souza

Se enxerguei além dos outros é por que estava no ombro de gigantes (Isaac Newton)
[Email] [WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team