Externes konsolen Anwendung (.exe) starten

ItsMe

Neues Mitglied
Hallo Java-Forum Nutzer,

Ich habe ein Windows Konsolen Programm (.exe) welches Werte ausließt und diese jede Sekunde in einer neuen Konsolen Zeile ausgibt.
Gibt es eine Möglichkeit das Windows Konsolen Programm mit von meinen Java Programm bestimmten Parameter zu starten. Das Windows Konsolen Programm im Hintergrund laufen zu lassen und die Ausgabe des Windows Konsolen Programm in mein Java Programm (z.B. in einen String) einzulesen. Bei Drücken eines Buttons in meinen Java Programm soll das Windows Konsolen Programm wieder beendet werden.
Ich habe mich mit der Java Runtime-Klasse auseinander gesetzt bin jedoch nicht daraus schlau geworden.

Gibt es eine Möglichkeit dafür ?

Meine versuche bis jetzt:

Meine Funktion um das Windows Programm zu starten. Jedoch Funktioniert nur das Starten des Programms jedoch nicht das Einlesen und das Beenden.
Java:
      Process p = null;
      String StringAuswahl, eingabe;
	
void startExternesProgramm() {
		 String[] command =
			    {
			        "cmd",
			    };
			    
				try {
					p = Runtime.getRuntime().exec(command);
				} catch (IOException e) {
					e.printStackTrace();
				}
			    new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
			    new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
			    PrintWriter stdin = new PrintWriter(p.getOutputStream());
			    stdin.println("infoWert.exe" +" -w " +StringAuswahl);
                            stdin.close();
			    //ausgabe auslesen
			    BufferedReader reader = new BufferedReader(new    InputStreamReader(p.getInputStream()));
			    try {
					eingabe = reader.readLine();
				} catch (IOException e) {
					e.printStackTrace();
				}
void stopExternesProgramm(){
	    p.destroy();
	}

SyncPipe.java (Hab ich Gegooget)
Java:
package gui;

import java.io.*;

class SyncPipe implements Runnable
{
public SyncPipe(InputStream istrm, OutputStream ostrm) {
      istrm_ = istrm;
      ostrm_ = ostrm;
  }
  public void run() {
      try
      {
          final byte[] buffer = new byte[1024];
          for (int length = 0; (length = istrm_.read(buffer)) != -1; )
          {
              ostrm_.write(buffer, 0, length);
          }
      }
      catch (Exception e)
      {
          e.printStackTrace();
      }
  }
  private final OutputStream ostrm_;
  private final InputStream istrm_;
}

Gibt es bessere Möglichkeiten das zu Realisieren ?
Und gibt es eine Möglichkeit Befehle von dem Java Programm an das externe Windows Programm zu senden während es läuft ?

vielen Dank schon mal im Voraus.
 
Zuletzt bearbeitet:

pcProfie

Aktives Mitglied
wenn du programme öffnen willst, empfehle ich die klasse desktop (desktop.getdesktop.open). zum schließen kannste eine bat datei ausführen die du erstellt hast. taskkill /f /im cmd.exe schließt die cmd. in die open als parameter den pfad von der cmd als string. die findeste irgendwo unter c:windows. aber sachen aus der windo konsole einzulesen wird schwer sein würde ich sagen. es gibt aber bestimmt die mglkt die konsole zu loggen, dh. alles output in eine datei zu speichern. dann kann dein java programm die datei auslesen.... wär eine idee, ob umsetzbar müsste weiter recherchen :)
 

knilch

Bekanntes Mitglied
Hi,
Ich weiss nicht, ob es möglich ist, von einem Java- Programm an ein laufendens exe parameter zu senden.
Ein exe kannst du mit unterschiedlichen Parameter von Java starten. Auch die Ausgabe vom exe an ein laufendes Java- Programm ist möglich:
Hier eine Beispielmethode, die ein exe startet und alle Ausgaben von diesem exe im Java- Programm ausgibt:
Java:
public int exec(String cmd) {
	Runtime rt = Runtime.getRuntime();
	Process pr;
	try {
		pr = rt.exec(cmd); 
		BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream(), "UTF-8"));
		BufferedReader error = new BufferedReader(new InputStreamReader(pr.getErrorStream(), "UTF-8"));
		String line = null;
		while ((line = input.readLine()) != null || (line = error.readLine()) != null) {
			System.out.println(line);
		}
					   
		int exitVal = pr.waitFor();
		System.out.println("Exited with error code " + exitVal);
		return exitVal;
 
	} catch (IOException e) {
		e.printStackTrace();
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	return 0;
}

Starten kannst du das ganze mit:
Java:
int errorCode = exec(command);
if (errorCode != 0) {
    System.out.println("Programm fertig");
    return;
}
der String command ="Programm.exe -ARG1-ARG2 -ARG3 .....";
im command- String definierst du dann das exe sowie die Arguemente, welche zum Ausführen des Programms übergeben werden. Der command- String ist nur ein Beispiel, es kann sein, dass du andere characters zum trennen der jeweiliegen Argumente benötigst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R externes Programm starten Java Basics - Anfänger-Themen 12
M Script für Externes Programm Java Basics - Anfänger-Themen 6
S externes Programm öffnen Java Basics - Anfänger-Themen 3
S Externes Java Programm starten Java Basics - Anfänger-Themen 9
T Externes Programm mit Werten versorgen Java Basics - Anfänger-Themen 4
S Classpath Externes Package einbinden (zip-Datei) Java Basics - Anfänger-Themen 9
M Externes Programm maximieren in Windows Java Basics - Anfänger-Themen 9
R Java als externes Programm speichern Java Basics - Anfänger-Themen 3
M Externes Speichern von int-Wert Java Basics - Anfänger-Themen 3
M Mein Externes Programm startet nicht Java Basics - Anfänger-Themen 13
M externes Programm auf anderen Rechner ausführen lassen Java Basics - Anfänger-Themen 2
J Externes Programm starten Java Basics - Anfänger-Themen 7
F Externes Programm aus Java starten Java Basics - Anfänger-Themen 3
L externes bild einfügen Java Basics - Anfänger-Themen 2
D Externes Programm mit sudo aufrufen Java Basics - Anfänger-Themen 14
M wie spreche ich ein externes fenster an Java Basics - Anfänger-Themen 14
G externes Programm mit Parameter öffnen Java Basics - Anfänger-Themen 7
J externes Programm in Java einbinden Java Basics - Anfänger-Themen 58
Linad externes programm in java starten? Java Basics - Anfänger-Themen 2
C Externes Package einbinden! Java Basics - Anfänger-Themen 5
G Externes Programm beenden Java Basics - Anfänger-Themen 6
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
S Konsolen eingabe Java Basics - Anfänger-Themen 17
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
H Frage zur Konsolen-Ausgabe Java Basics - Anfänger-Themen 1
J Möchte gern den Konsolen Output auf JTextPane umleiten Java Basics - Anfänger-Themen 4
E Jar Fehler = Konsolen Fehler Java Basics - Anfänger-Themen 4
P seltsamer konsolen aufruf Java Basics - Anfänger-Themen 8
W Konsolen-Ausgabe formatieren Java Basics - Anfänger-Themen 10
P konsolen ausgabe bei servlet Java Basics - Anfänger-Themen 2
D Konsolen aufruf geht nich Java Basics - Anfänger-Themen 2
A Java-Konsolen Menü Java Basics - Anfänger-Themen 6
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
I Java FX GUI Anwendung Java Basics - Anfänger-Themen 30
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
G MapStruct Anwendung vom selbst geschriebenen Formater Java Basics - Anfänger-Themen 4
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
S If Anwendung Java Basics - Anfänger-Themen 1
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
J Datentypen Anwendung von String contains Java Basics - Anfänger-Themen 4
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
R If anwendung funktioniert nicht Java Basics - Anfänger-Themen 3
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
A Testprogramm in java oder javascript für Windows Anwendung? Java Basics - Anfänger-Themen 1
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
S JUnit - Swing- Anwendung wird nicht neu gestartet Java Basics - Anfänger-Themen 0
R Best Practice Problem Anwendung umzusetzen Java Basics - Anfänger-Themen 2
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Anwendung Startet nur in Vergangenheit Java Basics - Anfänger-Themen 11
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
C Java-Anwendung im Browser zoomen Java Basics - Anfänger-Themen 1
C Anwendung generischer Typparamter auf ArrayList Java Basics - Anfänger-Themen 2
E Classpath SecSigner in WebStart-Anwendung Java Basics - Anfänger-Themen 3
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
E mit java-anwendung internet verbindung unterbrechen Java Basics - Anfänger-Themen 5
L Verbindung von Anwendung mit GUI Java Basics - Anfänger-Themen 6
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
W Rekursion Anwendung Java Basics - Anfänger-Themen 16
FreeFun Java Anwendung beenden Java Basics - Anfänger-Themen 7
S Reale Anwendung der OOP Java Basics - Anfänger-Themen 33
B Seltsamer Fehler in SWING anwendung Java Basics - Anfänger-Themen 2
M Anwendung Schreibrechte geben Java Basics - Anfänger-Themen 13
M Anwendung als Webstart ausführen Java Basics - Anfänger-Themen 4
G Erste Schritte von Eclipse zur Anwendung: Programme auf anderen Rechnern zum Laufen bringen Java Basics - Anfänger-Themen 4
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
M Anwendung in verschiedenen JREs Java Basics - Anfänger-Themen 42
A Hilfe bei Anwendung erstellen Java Basics - Anfänger-Themen 2
J GUI für Java-Anwendung erzeugen Java Basics - Anfänger-Themen 7
U Rechte bei JAVA-Anwendung? Java Basics - Anfänger-Themen 8
JAVAnnik Anwendung nach Schließen vom letzen Frame Java Basics - Anfänger-Themen 9
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
L Benutzerdefinierte Anwendung starten Java Basics - Anfänger-Themen 5
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
Steve5000 Externe Batch-Datei starten und anwendung beenden?! Java Basics - Anfänger-Themen 4
StrikeTom Problem mit regex(-anwendung) Java Basics - Anfänger-Themen 10
D Frage zu Collection und deren Anwendung Java Basics - Anfänger-Themen 2
P Java Anwendung mit mehr RAM starten?? Java Basics - Anfänger-Themen 5
N Favicon in meiner Anwendung Java Basics - Anfänger-Themen 9
Error257 Doppelklick-Anwendung Java Basics - Anfänger-Themen 6
A JBoss-Anwendung soll im Singleton-Mode laufen Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
Dit_ invokeLater | richtige Anwendung Java Basics - Anfänger-Themen 2
H Datei einlesen in einer MVC Anwendung Java Basics - Anfänger-Themen 3
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
M MergeSort - Threads in Anwendung bremsen alles! Java Basics - Anfänger-Themen 4
C0FFEE Anwendung soll eigenen Dateinamen referenzieren Java Basics - Anfänger-Themen 13
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
D Das Ausführen einer Java Anwendung auf versch Systemen... Java Basics - Anfänger-Themen 5
F u.a. Ressourcen begrenzung für Java-Anwendung Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben