01: /*
02: * Created on 07/03/2002
03: *
04: * Swing Components - visit http://sf.net/projects/gfd
05: *
06: * Copyright (C) 2004 Igor Regis da Silva Simões
07: *
08: * This program is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU General Public License
10: * as published by the Free Software Foundation; either version 2
11: * of the License, or (at your option) any later version.
12: *
13: * This program is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: * GNU General Public License for more details.
17: *
18: * You should have received a copy of the GNU General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */package br.com.gfpshare.util;
23:
24: import java.io.BufferedReader;
25: import java.io.IOException;
26: import java.io.InputStreamReader;
27:
28: import javax.swing.JTextArea;
29:
30: /**
31: * Class Run é usada para startar um processo e direcionar sua saída para um JTextArea
32: *
33: */
34: public class Run {
35: private Runtime rt = null;
36: private Process process = null;
37:
38: /**
39: * Cria um novo objeto Run
40: */
41: public Run() {
42: rt = Runtime.getRuntime();
43: }
44:
45: /**
46: * Starta um determinado processo.
47: * @param command : O caminho completo do programa a ser executado
48: */
49: public void execute(String command) {
50: try {
51: process = rt.exec(command);
52: } catch (IOException e) {
53: e.printStackTrace();
54: }
55: }
56:
57: /**
58: * IO de saída do processo.
59: *
60: * @return BufferedReader o qual será a saída IO padrão do porcesso.
61: */
62: private BufferedReader getInput() {
63: return new BufferedReader(new InputStreamReader(process
64: .getInputStream()));
65: }
66:
67: /**
68: * Determina onde a saída do processo será escrita.
69: * @param out : O JTextArea que receberá a saída do processo.
70: */
71: public void setOutput(JTextArea out) {
72: String nulo = null;
73: try {
74: while ((nulo = getInput().readLine()) != null) {
75: out.append(nulo + "\n");
76: }
77: } catch (Exception e) {
78: e.printStackTrace();
79: }
80: }
81: }
|