Hallo miteinander,
Ich arbeite mich gerade in Streams und Prozesse ein.
Nun möchte ich gerne mit der JAR einen weiteren Java Prozess starten.
Dann möchte ich mithilfe eines Scanners in der 1. JAR etwas an den InputStream der 2. JAR übertragen, sodass ich Befehle an die zweite übermitteln kann. Da werden sie eben vom System.in aufgenommen.
Hoffentlich ist das verständlich.
Hier wär noch mein bisheriger Code. Der Out- und Err-Stream lässt sich schonmal auslesen. Nur noch mit dem Input habe ich Probleme.
Grüße
PNGamingPower
EDIT: Code vergessen
Ich arbeite mich gerade in Streams und Prozesse ein.
Nun möchte ich gerne mit der JAR einen weiteren Java Prozess starten.
Dann möchte ich mithilfe eines Scanners in der 1. JAR etwas an den InputStream der 2. JAR übertragen, sodass ich Befehle an die zweite übermitteln kann. Da werden sie eben vom System.in aufgenommen.
Hoffentlich ist das verständlich.
Hier wär noch mein bisheriger Code. Der Out- und Err-Stream lässt sich schonmal auslesen. Nur noch mit dem Input habe ich Probleme.
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.concurrent.Executors;
public class IOprocessStream implements Runnable{
public static void main(String[] args) {
new IOprocessStream();
}
Process p = null;
BufferedReader out = null;
BufferedReader err = null;
Scanner scan = null;
PrintWriter writer = null;
String s = "";
String s1 = "";
public IOprocessStream() {
try {
p = Runtime.getRuntime().exec("javaw -jar C:\\test.jar");
} catch (IOException e1) {
e1.printStackTrace();
}
out = new BufferedReader(new InputStreamReader(p.getInputStream()));
err = new BufferedReader(new InputStreamReader(p.getErrorStream()));
scan = new Scanner(System.in);
writer = new PrintWriter(p.getOutputStream());
Executors.newSingleThreadExecutor().execute(this);
}
@Override
public void run() {
try {
while((s = out.readLine()) != null){
System.out.println(s);
}
while((s = err.readLine()) != null){
System.out.println(s);
}
while((s1 = scan.next()) != null){
for(char c : s1.toCharArray()){
writer.append(c);
}
writer.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Grüße
PNGamingPower
EDIT: Code vergessen
Zuletzt bearbeitet: