В настоящее время я пытаюсь использовать процессы в Java для запуска файла JAR.Я могу запустить и прочитать содержимое, напечатанное процессом.То, что я пытаюсь достичь, это написать команду для процесса.Файл jar, который я запускаю, запрашивает ввод пользователя, и я пытаюсь разрешить пользователю ввести этот ввод.Это мой текущий код, который не работает:
public class Main {
public static void main(String[] args) {
String command = "java -jar game.jar";
Process process = executeCommand(command);
CompletableFuture.runAsync(() -> {
Scanner scanner = new Scanner(System.in);
while (true) {
String input = scanner.nextLine();
if (input == null) {
continue;
}
executeCommand(process, input);
}
});
readOutput(process);
}
public static Process executeCommand(String command) {
try {
Process process = Runtime.getRuntime().exec(command);
return process;
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
}
public static List<String> readOutput(Process process) {
List<String> output = new ArrayList<>();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while((line = reader.readLine()) != null) {
System.out.print(line + "\n");
output.add(line);
}
process.waitFor();
return output;
} catch (IOException ex) {
ex.printStackTrace();
return output;
} catch (InterruptedException ex) {
ex.printStackTrace();
return output;
}
}
public static void executeCommand(Process process, String command) {
try {
OutputStream out = process.getOutputStream();
out.write(command.getBytes());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}