【发布时间】:2020-06-12 00:09:23
【问题描述】:
我正在尝试通过 java 管理我的 minecraft 服务器,但即使我可以轻松读取输出,我也无法获取命令甚至文本:
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "cd C:\\my\\path\\ && java -jar server.jar nogui");
builder.redirectErrorStream(true);
Process p;
p = builder.start();
this.p = p;
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (loop) {
line = r.readLine();
if (line == null) { break; }
System.out.println(line);
}
这很好用,但是当我尝试发送命令时它根本不起作用:
OutputStream os = BotData.minecraftServer.getOutputStream();
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(os));
String stop = "stop";
try {
out.write(stop + "\n");
out.write("\n");
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我试过"Command:>>" + stop + "\n"
在stop 之前有或没有/ 等等。
强制或不强制终止进程,在线程中启动它然后我会停止......
我无法让文本或命令工作。
【问题讨论】:
-
BotData.minecraftServer。是第一个块中的进程 p
标签: java input output minecraft