Process

KalleM

Aktives Mitglied
Hallo,
habe mal ein paar fragen zum processbuilder. möchte aus einem programm bzw aus einer main-methode ein anderes programm bzw eine anderes class-file (mit eigener main) starten.
habe folgendes zum konstruktor gefunden:

ist es richtig, dem prozessbuilder übergebe ich dann ein class-file? die class-files liegen in ein und demselben ordner.

Java:
           ProcessBuilder pb = new ProcessBuilder("Versenden.class");
//und jetzt muss ich den process starten??
Process p = pb.start();
 

Marco13

Top Contributor
Hm, das wäre glaubich eher
ProcessBuilder pb = new ProcessBuilder("java", "Versenden.class");
Irgendwelche konkreten Probleme?
 

KalleM

Aktives Mitglied
ja und zwar ist es so, dass ich in dem class-file welches ich per processbuilder starte eine System.out.println("hallo, mail versendet") ausgabe habe. wenn ich es jetzt richtig verstehe, hat ein prozess einen eigenen stream. dann müssste mir folgendens:

Java:
           ProcessBuilder builder = new ProcessBuilder("java","Versenden.class");
           Process p = builder.start();

          String s = new BufferedReader(new InputStreamReader(p.getInputStream())).readLine();
          System.out.println( s );

doch das ausgeben, was ich in der Versenden.class per System.out.println("Ausgabe") ausgebe? leider klappt das nicht, der stream liefert immer 'null'. also irgendwie scheint der process versenden nicht wirklich gesartet zu werden.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Oh ja, nicht "Versenden.class" sondern nur "Versenden" als Parameter übergeben.

Aber eigentlich sollte bei ersterem eine Fehlemeldung kommen, die man sich auslesen können sollte, und bei einem Test eben hat das nicht geklappt. (Man muss normalerweise den Input- und Error stream vollständig leerlesen, nachdem ein Process zuende ist, sonst blockt er - aber hier blockt er immer... Müßte man mal genauer prüfen...)
 

Ähnliche Java Themen

Neue Themen


Oben