gpt4 book ai didi

java - 在java中运行程序读取它在做什么

转载 作者:行者123 更新时间:2023-12-01 15:08:51 26 4
gpt4 key购买 nike

我想在java中运行一个像视频游戏这样的程序,并让它输出它在java中所做的一切,这可能吗?为了澄清一切,我想看看游戏在做什么方面的输出。我知道它可能无法完全理解,因为它会使用不同的程序语言。这里有人记得使用 gameshark/gamegenie 破解游戏获取代​​码吗?这就是我想做的事情。

到目前为止,我尝试了运行时和 processbuilder,但它什么也没输出。

下面是我的代码:

public class ProcessW {
public static void main(String[] args) throws IOException {
String command = "...my game...";

ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process proc = pb.start();

java.io.InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

String line;
int exit = -1;

while ((line = br.readLine()) != null) {
// Outputs your process execution
System.out.println(line);
try {
exit = proc.exitValue();
if (exit == 0) {
// WinProcess finished
}
} catch (IllegalThreadStateException t) {
// The process has not yet finished.
// Should we stop it?
//if (processMustStop())
// processMustStop can return true
// after time out, for example.
proc.destroy();
}
}
}
}

最佳答案

如果游戏在没有 Java 的情况下启动时在控制台上打印一些内容,那么问题出在缓冲上。只有在写入 4096 字节的输出后,Java 才会看到游戏的输出。

防止这种情况的唯一方法是更改​​游戏代码,在每行之后调用 stdout.flush() (或类似的),以强制操作系统将输出发送到 Java 进程.

关于java - 在java中运行程序读取它在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585774/

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