Hallo liebes Forum,
ich habe folgendes c++-Programm
Dieses Programm würde ich jetzt gerne durch ein Java-Programm aufrufen. Damit das c++-Programm dabei komplett ausgeführt wird, muss natürlich mittels meinem Java-Programm die geforderte Eingabe gemacht werden. Leider scheitere ich dabei. Ich habe es bislang versucht per output-stream der ProcessBuider-Klasse zu schaffen, allerdings ohne Erfolg. Hier der Java-Code, der ohne die Eingabeaufforderung des c++-Programms funktioniert.
Vielen Dank für Hilfansätze!!!
Thomas
ich habe folgendes c++-Programm
Code:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Programmauf vom Konsolenprogramm" << "\n";
string bla;
cin >> bla;
Sleep(3000);
cout << "Benutzereingabe : -" + bla + "-\n";
cout << "Programmende vom Konsolenprogramm" << "\n";
Sleep(2000);
return EXIT_SUCCESS;
}
Dieses Programm würde ich jetzt gerne durch ein Java-Programm aufrufen. Damit das c++-Programm dabei komplett ausgeführt wird, muss natürlich mittels meinem Java-Programm die geforderte Eingabe gemacht werden. Leider scheitere ich dabei. Ich habe es bislang versucht per output-stream der ProcessBuider-Klasse zu schaffen, allerdings ohne Erfolg. Hier der Java-Code, der ohne die Eingabeaufforderung des c++-Programms funktioniert.
Java:
package programmaufruf;
import java.io.*;
public class Programmaufruf {
public static void main(String args[]) {
String s = null;
try {
// run the Unix "ps -ef" command
// using the Runtime exec method:
Process p = Runtime.getRuntime().exec("C:\\Dev-Cpp\\testprogramm\\konsolenprogamm.exe");
OutputStream out = p.getOutputStream();
out.write(3116);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
System.exit(0);
}
catch (IOException e) {
System.out.println("exception happened - here's what I know: ");
e.printStackTrace();
System.exit(-1);
}
}
}
Vielen Dank für Hilfansätze!!!
Thomas