我目前正在写一些东西来解决这个 Java 错误:
http://bugs.sun.com/view_bug.do?bug_id=5049299
基本上,我有一个与 Java 服务器运行在同一台机器上的轻量级 C 服务器。当我可以请求它通过套接字派生/运行新进程并传回 stdin/stdout/stderr 时,我正在向 C 服务器添加一个功能。在 Java 方面,我创建了一些模仿 ProcessBuilder
和 Runtime.exec()
行为的东西,但通过套接字。
stderr
出现问题。 Java 套接字没有错误流,所以我对如何恢复它有点不知所措。我想出了两个可能的解决方案:
- 创建第二个套接字(可能是 从 C 服务器返回到 Java 服务器)我只是发送stderr 回来。
- 交错输出 带有 stderr 的进程 处理然后将它们分开解析 Java 回到单独的流中
这两种解决方案都有固有的问题,所以我很想听听任何人的反馈。
奖励:给我一个简单、有保证的解决 Java 错误的方法,不需要我做任何这些,我将永远是你最好的 friend 。
最佳答案
为了解决这个问题,我利用了两台服务器运行在同一台机器上的优势。我只是将 stderr 写入我在另一台服务器上读取的文件。不是世界上最优雅的解决方案,但非常简单并且有效。
关于java - 如何通过 Java 中的套接字获取错误流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322347/