Start externer Programme

Onkel Tom

Mitglied
Hallo Forum,

habe den Text im Internet gefunden und will es nachnutzen.

Java:
import java.util.*;
import java.io.*;
class StreamGobbler extends Thread
{
    InputStream is;
    String type;
    StreamGobbler(InputStream is, String type)
    {
        this.is = is;
        this.type = type;
    }
   
    public void run()
    {
        try
        {
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String line=null;
            while ( (line = br.readLine()) != null)
                System.out.println(type + ">" + line);  
            } catch (IOException ioe)
              {
                ioe.printStackTrace();
              }
    }
}

public class GoodWindowsExec
{
    public static void main(String[] args)
    {
        try
        {          
            String osName = System.getProperty("os.name" );
            String[] cmd = new String[4];
            if( osName.equals( "Windows 10" ) )
            {
                cmd[0] = "cmd.exe" ;
                cmd[1] = "/C" ;
                cmd[2] = "java";
                cmd[3] = "-version";
            }
           
            Runtime rt = Runtime.getRuntime();
            System.out.println("Execing " + cmd[0] + " " + cmd[1] + " " + cmd[2]+" "+cmd[3]);
            Process proc = rt.exec(cmd);
            // any error message?
            StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");          
           
            // any output?
            StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
               
            // kick them off
            errorGobbler.start();
            outputGobbler.start();
                                   
            // any error???
            int exitVal = proc.waitFor();
            System.out.println("ExitValue: " + exitVal);      
        } catch (Throwable t)
          {
            t.printStackTrace();
          }
    }
}

das Programm läuft, Aufruf mit 'java GoodWindowsExec java -version'
Allerdings zeigt es die ERROR - Meldung an. Warum ? der Exitwert ist auch 0.
Außerdem möchte ich die Ausgabe in eine Variable geschrieben haben. Die brauche ich an anderer Stelle in meinem Programm.

Gruß,
Onkel Tom
 
K

kneitzel

Gast
Wenn Du eine Applikation startest, dann gibt es zwei Standard Ausgaben: Die "normale" Ausgabe (stdout) und die Fehler Ausgabe (stderr). (Findest Du in Java in Deinem Program halt einmal in System.out und in System.err.)

java -version gibt die Hinweise zur Version über stderr aus.

Dies kannst Du über die Umleitung auch sehen. Wenn Du in der Eingabeaufforderung bist, dann kannst Du stdout und stderr umleiten. stdout leitest du über > um und stderr über 2> um.

Also kannst Du z.B. java -version > stdout.txt 2> stderr.txt aufrufen um dann in den Dateien zu sehen, was wohin geschrieben wurde.

Edit: Ganz vergessen: Das sieht man dann natürlich auch am Prozess: getErrorStream gibt halt den stream von stderr des Prozesses und getInputStream den stream von stdout. (Was halt bei dem Prozess Output ist, ist für uns Input. Davon bitte nicht verwirren lassen!)

Und wenn Du die Ausgabe weiter verwenden willst, dann könntest Du die gelesenen Zeilen ja noch weiter verwenden. Sprich in der while Schleife könntest Du die Variable line noch weiter verwenden und diese irgendwo merken. Wird halt nur etwas komplexer, weil Du mit mehreren Threads arbeitest und Du da aufpassen musst, dass Du nicht dadurch in Probleme rennst. Beide Threads könnten ja gleichzeitig versuchen, einen Wert zu ändern oder so...
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
J Junit start surefire for manual testing Allgemeine Java-Themen 1
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
Meeresgott Best Practice Java to exe oder exe to start java ? Allgemeine Java-Themen 5
J Probleme exe-Start mit Task Scheduler Allgemeine Java-Themen 1
T Erste Schritte FAIL - Deployed application at context path / but context failed to start Allgemeine Java-Themen 1
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
P Java https proxy (-Dhttps.proxyHost) Start-Parameter funktioniert nicht? Allgemeine Java-Themen 2
C Can't start application since jvm.dll is not installed Allgemeine Java-Themen 1
L Java Web Start - generierter Prozess Allgemeine Java-Themen 4
M Swing JFreechart x-Achse DateAxis, start im Ursprung Allgemeine Java-Themen 3
F Java Error, bei Installation, Start und dem Control Panal Allgemeine Java-Themen 8
X Skalierung von Bildern zum Start des Programms Allgemeine Java-Themen 3
S Start des zweiten Threads erst nach Beenden des ersten Threads Allgemeine Java-Themen 13
X Problem bei process.start() ExitValue Allgemeine Java-Themen 5
B Best Practice Start-Applikation mit Logger? Allgemeine Java-Themen 3
A Start Ladescreen Allgemeine Java-Themen 2
A Could not find main class: start Allgemeine Java-Themen 5
S Probleme beim Start von jar Datein Allgemeine Java-Themen 15
G Webstart Java Web Start und native Bibliotheken Allgemeine Java-Themen 3
P Problem mit Java Web Start Allgemeine Java-Themen 1
L Java Web Start: IE Konfiguration? Allgemeine Java-Themen 5
H Unterschied EventQueue.invoke... und thread.start() Allgemeine Java-Themen 4
J Dateinamen beim Start auslesen Allgemeine Java-Themen 10
H Mehrfachen Start des Programms verhindern Allgemeine Java-Themen 6
F Java Web Start Parameterübergabe an Applikationsumgebung Allgemeine Java-Themen 2
A Start von Java Plugin Allgemeine Java-Themen 2
M Java Web Start - Native DLL einbinden Allgemeine Java-Themen 2
D Speicher beim Start zuweisen Allgemeine Java-Themen 10
Q 32 bit 64 bit start up problem Allgemeine Java-Themen 6
T JDialog vor Hauptfenster beim Start Allgemeine Java-Themen 5
E Focus nach Start eines externen Programmes Allgemeine Java-Themen 6
H Webstart...Start dauert ewig... Allgemeine Java-Themen 5
G Auf den Start eines Threads warten? Allgemeine Java-Themen 4
T Mehrmaligen Start verhindern Allgemeine Java-Themen 19
W Windows XP: ProcessBuilder.start: Kommandoshell anzeigen Allgemeine Java-Themen 3
G Prozess direkt starten beim Start des Appservers Allgemeine Java-Themen 3
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
M Windows: Start --> Ausführen --> [url]http://meine.url.com[/url] Allgemeine Java-Themen 3
P Start eines Programms scheitert an Java Allgemeine Java-Themen 9
B Start - Schwierigkeiten Allgemeine Java-Themen 10
zilti Eclipse meldet Fehler beim Start Allgemeine Java-Themen 8
L Nutzt Java bei Start der VM übermäßig viel Speicher? Allgemeine Java-Themen 3
G In Eclipse läufts, aber bei java Start.class gehts nicht Allgemeine Java-Themen 8
M Fehler beim Start des Chat-Applets von java-forum.org Allgemeine Java-Themen 10
C Java Web Start Allgemeine Java-Themen 3
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
S eclipse start bringt fehler Allgemeine Java-Themen 2
S API für Start-menu und Links Allgemeine Java-Themen 2
T doppelgeklickte Datei automatisch nach Start des Prog öffnen Allgemeine Java-Themen 2
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
F IE-Applet vs. Java Web Start Allgemeine Java-Themen 5
X Applikation Java Web Start fähig machen Allgemeine Java-Themen 4
X Parameter bei Start über Batch-Datei übergeben(Tag und Zeit) Allgemeine Java-Themen 3
S Java Web Start Anwendungen laden nicht vernünftig Allgemeine Java-Themen 6
OnDemand Zugangsdaten externer Systeme sicher speichern Allgemeine Java-Themen 8
G Externer Quellcode Allgemeine Java-Themen 3
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
D Bilder aus externer .jar laden Allgemeine Java-Themen 3
F Bild aus externer Quelle laden und Skalieren? Allgemeine Java-Themen 11
T Klasse in externer JAR mit ObjectInputStream Allgemeine Java-Themen 14
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
C Speicherlecks in externer Library Allgemeine Java-Themen 2
S Debuggen externer libs Allgemeine Java-Themen 2
E Klasse aus externer Class in JAR laden Allgemeine Java-Themen 6
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
T Programme ausführen.. Allgemeine Java-Themen 3
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
J Programme erklären Allgemeine Java-Themen 1
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
C Prozesssteuerung - Speicherhungrige externe Programme werden blockiert Allgemeine Java-Themen 2
F Mit Java Programme aus der Taskleiste auslesen Allgemeine Java-Themen 5
E Eure erstellten Programme Allgemeine Java-Themen 3
B Externe Programme und ProcessBuilder Allgemeine Java-Themen 5
G Library für CNC Programme Allgemeine Java-Themen 2
J Können Programme sich selbst erweitern? Allgemeine Java-Themen 6
Fu3L Java Programme an Taskleiste anheften Allgemeine Java-Themen 5
D externe programme / Jdesktoppane, ... Allgemeine Java-Themen 6
M Plugins für eigene Programme Allgemeine Java-Themen 3
GilbertGrape Jetty-Dienst startet keine Programme mit Oberfläche Allgemeine Java-Themen 2
C Programme Modularisieren Allgemeine Java-Themen 2
M Prüfen, welche anderen Programme laufen Allgemeine Java-Themen 5
F GCJ bzw. native Java-Programme Allgemeine Java-Themen 7
P Bekannte in Java geschriebene Programme Allgemeine Java-Themen 15
W Einfaches Installer/setup tool für java programme das. Allgemeine Java-Themen 4
C Java 6 Programme irgendwie lauffähig machen für Mac 10.5 Allgemeine Java-Themen 11
P Server für Java- Programme Allgemeine Java-Themen 8
J Services - Programme laden (Speicherproblem?) Allgemeine Java-Themen 7
A State-of-the-Art Techniken für Desktop Programme ? Allgemeine Java-Themen 3
D mehrere Programme miteinander kommunizieren lassen Allgemeine Java-Themen 12
X Java Programme verschlüssen Allgemeine Java-Themen 14
P Java 6 kompilierte programme laufen die auch unter JRE 1.4.x Allgemeine Java-Themen 43
M Fremde Programme öffnen? Allgemeine Java-Themen 16
S programme? Allgemeine Java-Themen 2
S Programme für Struktogramm? Allgemeine Java-Themen 16
S 5. Programme, die EXE-Dateien aus JAVA-Anwendungen erstellen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben