使用 JLine reader 向外部程序发送命令不起作用

Sending commands to external program using JLine reader not working

我有一个程序 运行 另一个 Java 程序并向该程序发送命令,但它没有检测到命令。我发送给命令的程序使用 JLine,所以我认为这就是问题所在,它适用于不使用它的其他程序。这是我用来发送命令的代码

// On process build
OutputStream stdin = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(stdin);

// On button click from javafx
dataOutputStream.write(command.getBytes());
dataOutputStream.flush();

我尝试了 DataOutputStream 和 OutputStream。

命令只是什么也没做,什么也没有发生。没有诸如无效命令消息之类的输出。读取输出确实有效,错误也是如此

我无法编辑我正在尝试的程序的代码运行

我的完整代码如果有帮助的话 https://github.com/JustDoom/JustDoomLauncher/blob/master/src/main/java/com/imjustdoom/doomlauncher/justdoomlauncher/process/GameProcess.java#L36 - 创建进程并处理读取进程 https://github.com/JustDoom/JustDoomLauncher/blob/50b88bb658eb115f03fd3a9bf827c69147345e45/src/main/java/com/imjustdoom/doomlauncher/justdoomlauncher/application/ConsoleApplication.java#L42 - 在 javafx 中创建自定义控制台并写入进程

我修好了。 我最终需要在刷新之前向作者添加换行符。 所以我现在有了这个。

dataOutputStream.write(command.getBytes());
dataOutputStream.write("\n".getBytes());
dataOutputStream.flush();

编辑:当前答案确实有效,但仅适用于 jline

的较新版本而非较旧版本