Hi @ all,
ich habe ein (hoffentlich) kleines problem.
Ich habe 2 Java-Programme programmiert, jeweils mit Interface.
Jetzt würde ich gerne per Button in dem einen Fenster das 2te Programm aufrufen.
Dafür habe ich einen processbuilder geschrieben.
wenn ich allerdings das readline() weglasse, bekomme ich beim 2ten programm keine ausgabe mehr.
wenn das readline() drin bleibt, ist das erste programm gefreezed.
wie bekomme ich denn da meine ausgabe und ein funktionsfähiges erstes fenster???
hier mein code:
ich habe ein (hoffentlich) kleines problem.
Ich habe 2 Java-Programme programmiert, jeweils mit Interface.
Jetzt würde ich gerne per Button in dem einen Fenster das 2te Programm aufrufen.
Dafür habe ich einen processbuilder geschrieben.
wenn ich allerdings das readline() weglasse, bekomme ich beim 2ten programm keine ausgabe mehr.
wenn das readline() drin bleibt, ist das erste programm gefreezed.
wie bekomme ich denn da meine ausgabe und ein funktionsfähiges erstes fenster???
hier mein code:
Code:
mtBtn = new JButton("MapTool"); // Start MapTool
mtBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
command9 = new String[] {
"java",
"-cp",
"maptool/",
"MapTool",
"&"
};
pb = new ProcessBuilder(command9);
pb.redirectErrorStream(true);
try {
Process p = pb.start();
br = new BufferedReader( new InputStreamReader(p.getInputStream()));
if (!silent) {
String c;
while((c = br.readLine()) != null) {
System.out.println(c);
}
}
p.waitFor();
int retVal = p.exitValue();
if (retVal != 0);
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(
SimTool.this,
ioe.getMessage(),
"IOEception",
JOptionPane.ERROR_MESSAGE);
}
catch(InterruptedException ie) {
JOptionPane.showMessageDialog(
SimTool.this,
ie.getMessage(),
"InterruptedException",
JOptionPane.ERROR_MESSAGE);
}
}
});