ProcessBuilder

Status
Nicht offen für weitere Antworten.

nameac

Bekanntes Mitglied
hallo,

ich möchte über java ein externes programm starten (tshark).

das problem ist das ich mittels processBuilder, die cmd zwar öffnen kann und beliebig argumente mit übergeben kann, aber die argumente die mein process benötigt nicht mit übergeben werden können.

gibt es da ne möglichkeit direkt in das konsolenfenster zuschreiben das ja als externer task geöffnet wird....
 

madboy

Top Contributor
Wie meinst das?
Du kannst beliebige Argumente übergeben aber die, die du brauchst net?
Warum kannst du die Argumente nicht übergeben?
 

nameac

Bekanntes Mitglied
wenn ich ein programm das über die kommandozeile gestartet wird starten will, dachte ich bisher mann müsste dafür die cmd vorher starten, das das nicht zwingend notwendig ist ist mir jetzt aufgefallen, wobei einem dann nur abgespeckte funktionalität zur verfügung steht.

->ich rufe cmd mit parametern auf->einer dieser parametr ist tshark, unsd jetzt weiß ich nicht we ich tshark parameter mit auf den weg geben soll...
 

JPKI

Top Contributor
Code:
Runtime.getRuntime().exec("cmd /c tshark " + parameter1 + " " + parameter2 + " " + usw...);
 

nameac

Bekanntes Mitglied
kann man mit outputStream in das terminal direkt schreiben?
bzw. die konsole, mit diesem bsp war ich leider nicht erfolgreich.

Code:
l.add("/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal");
	
	try{
		ProcessBuilder builder = new ProcessBuilder(l); 
	    Process p = builder.start(); 
	     DataOutputStream terminal = new DataOutputStream(p.getOutputStream());
	   terminal.writeChars("cd /Applications/eclipse/workspace/perfTool/progs/\n");
		//terminal.flush();
 

nameac

Bekanntes Mitglied
mittlerweile klappt es ein bisschen besser aber den prozess aus einem bash prozess heraus gestartet funktioniert in sofern nicht, da die out.txt leer bleib und wenn ich p.waitFor setze passiert auch nicht mehr.
wo liegt denn noch mein fehler?
Code:
l.add("/Applications/eclipse/workspace/perfTool/progs/bash");
	
		try{
		ProcessBuilder builder = new ProcessBuilder(l); 
	    Process p = builder.start(); 
	        	   
	DataOutputStream terminal = new DataOutputStream(p.getOutputStream());
	terminal.writeChars("cd /Applications/eclipse/workspace/perfTool/progs/\n");
	terminal.writeChars("tshark -c 10 >out.txt\n");
	//terminal.writeChars("exit\n");
	terminal.flush();
	//p.waitFor();
 

madboy

Top Contributor
schau mal in den errorStream und inputStream (weiß grad nicht genau, wie die heißen) vom Prozess bzw. gib die aus. Vielleicht wird ja ne Fehlermeldung ausgegeben.
 

nameac

Bekanntes Mitglied
der ErrorStream liefert mir mein applicationsverzeichnis zur bash.
Code:
Scanner s = new Scanner( p.getErrorStream() ); 
	    System.out.println( s.next() );
im inputStream steht nichts.
 

madboy

Top Contributor
Code:
            ProcessBuilder builder = new ProcessBuilder("/bin/bash"); 
             Process p = builder.start(); 
                        
             DataOutputStream terminal = new DataOutputStream(p.getOutputStream()); 
             terminal.writeChars("cd /blablubb\n"); 
             terminal.writeChars("ls >out.txt\n"); 
             terminal.flush(); 
             Scanner s = new Scanner( p.getErrorStream() );
             while(s.hasNext()) { //das hier blockiert allerdings. Musst das Programm halt gewaltsam beenden ;-)
                 System.out.println(s.next());
             }

Das hört sich an, als wäre da der Fehler. Ich habs mal getestet (mit einem nicht vorhandenen Verzeichnis):
Code:
/bin/bash:
line
1:
cd:
/blablubb:
No
such
file
or
directory

Auch habe ich nachher eine Datei "out.txt" mit korrekter Ausgabe drinne.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Super User via Processbuilder (Linux) Allgemeine Java-Themen 3
T ProcessBuilder Output Allgemeine Java-Themen 12
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
H Syntax ProcessBuilder Allgemeine Java-Themen 7
E ProcessBuilder findet Datei nicht Allgemeine Java-Themen 3
V ProcessBuilder exe file Allgemeine Java-Themen 3
D ProcessBuilder und die while() Allgemeine Java-Themen 3
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
T ProcessBuilder (java.lang.NoClassDefFoundError) Allgemeine Java-Themen 2
G ProcessBuilder Allgemeine Java-Themen 2
B Externe Programme und ProcessBuilder Allgemeine Java-Themen 5
V Shellscript über ProcessBuilder starten Allgemeine Java-Themen 2
A ProcessBuilder Allgemeine Java-Themen 8
Y ProcessBuilder, Prozess wird gestartet, aber Anwendung nicht Allgemeine Java-Themen 5
B ProcessBuilder: kann Ordner im home nicht finden Allgemeine Java-Themen 2
W Windows XP: ProcessBuilder.start: Kommandoshell anzeigen Allgemeine Java-Themen 3
A Runtime oder ProcessBuilder exe starten Allgemeine Java-Themen 3
N ProcessBuilder Allgemeine Java-Themen 5
F ProcessBuilder - Exception Allgemeine Java-Themen 2
J Handle + ProcessBuilder: Wer sieht den Fehler? Allgemeine Java-Themen 2
D Formatierte Ausgabe vom ProcessBuilder Allgemeine Java-Themen 4
D ProcessBuilder und Scanner Probleme mit einigen Prozessen Allgemeine Java-Themen 2
F Pfadangabe bei Processbuilder Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben