Frage : Process.waitFor () und InputStream

Hallo, befehlen das

I morgens ein Linux OS-Niveau durchführend mit Runtime.getRuntime () .exec () method.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
public Lücke laufen ()
{
	Schnur linuxCommand = „myLinuxCommand“;
	Versuch
	{
		Prozess p = Runtime.getRuntime () .exec (neue Schnur [] {„SH“,“ - c ", linuxCommand});

		p.waitFor ();

		BufferedReader in = neues BufferedReader (neues InputStreamReader (p.getInputStream ()));

		Schnurlinie;
		während ((Linie = in.readLine ()) ! = Null)
			System.out.println (Linie);
	}
	Fang (Ausnahme e)
	{
		e.printStackTrace ();
	}
} zurückging das 

I morgens die Antwort lesend zurück durch diesen OS-Niveau Befehl Niveau (line#12-14 sehen).  Dieser Befehl kann bis zu 10-20 Sekunden einmal nehmen, um das Resultat zurückzubringen.  Ich lese von Java API, gibt es ein Methode waitFor () vorhanden in Process.  Meine Frage jetzt, wo sollte bin ich die waitFor () Methode in meiner Linie des Codes haben?  Ob es gesetzt werden sollte, bevor, die Antwort lesend, oder es nach dem Ablesen der Antwort gesetzt werden sollte, damit die Antwort, die durch den Befehl zurückgebracht, zuverlässig immer gelesen werden konnte?

Antwort : Process.waitFor () und InputStream

den modernisierten Code bitte verweisen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:

Weitere Lösungen  
 
programming4us programming4us