gpt4 book ai didi

java - BufferedWriter 到 ProcessBuilder 输入?

转载 作者:行者123 更新时间:2023-12-01 10:15:02 24 4
gpt4 key购买 nike

我尝试了很多不同的选择,但似乎没有任何效果。我无法让我的代码将字符串输出到进程的“控制台”。这是我的代码:

    Process p;
// Create new ProcessBuilder
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "jar-location").inheritIO();
// Change work directory
pb.directory(new File("other-location"));
// Redirect output
pb.redirectOutput(new File("C:\\xampp\\htdocs\\log.json"));
// Start ProcessBuilder
p = pb.start();
OutputStream stdin = p.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
while(!done) {
try {
if(go != null) {
writer.write(formatted[0])
}
Thread.sleep(1000);
}
catch(Exception err) {
System.out.println(err);
}
}

“p”是我尝试向其提交输入的进程,“formatted”是一个数据数组。当你运行这个时,什么也没有发生。我尝试过刷新/关闭编写器,但是如果没有收到“java IO 异常:流已关闭”,我无法将其放在某个位置。谁能告诉我的代码有什么问题吗?

堆栈跟踪:

Exception in thread "main" java.io.IOException: Stream closed
at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:433)
at java.io.OutputStream.write(OutputStream.java:116)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:316)
at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:233)
at java.io.BufferedWriter.close(BufferedWriter.java:266)
at com.Rocket_Scientist.Main.main(Main.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

最佳答案

所以我找到了问题所在,感谢VGR (谢谢!)。 “.inheritIO()”正在重定向输出流,导致了问题。谢谢!

关于java - BufferedWriter 到 ProcessBuilder 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com