是否可以将“tail -f”命令输出到java程序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了是否可以将“tail -f”命令输出到java程序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含961字,纯文字阅读大概需要2分钟。
内容图文
![是否可以将“tail -f”命令输出到java程序?](/upload/InfoBanner/zyjiaocheng/777/be744dc3fa5041e18662280b5997ed91.jpg)
根据:
Java IO implementation of unix/linux “tail -f”
我认为它可能但我有以下问题.
String TailCommand = "tail -f /path/PATH.txt| grep (...)";
Runtime r = Runtime.getRuntime();
Process p = r.exec(TailCommand);
//handle buffer
while (running) {
// handle output
}
进程p终止.与“top”或“tail -f”不同,它没有不断更新的命令.
我想知道我是否错过了什么,有一些缓冲限制或其他什么?
我正在使用eclipse,但我想这应该不会对流程行为产生任何影响.
事实上,也许还有另一种简单的方法来解决我错过的问题.我使用“tail -f”,因为我必须分析相当胖(一些GB)日志,这些日志不断附加并且不打算打开它并读取整个文件.我只需要控制附加行.但是我发现没有合适的尾部实现
提前致谢.
解决方法:
您无法从java内部执行管道命令.
如果你想要管道输出,执行’/ bin / sh’就像这样:
String tailCommand = "/bin/sh -c 'tail -f /path/PATH.txt| grep (...)'";
此外,您的java程序必须足够快地使用进程的输出,因此其缓冲区不会溢出.
您可能需要阅读本文When Runtime.exec() won’t,以了解尝试从Java执行进程时常见的陷阱.
内容总结
以上是互联网集市为您收集整理的是否可以将“tail -f”命令输出到java程序?全部内容,希望文章能够帮你解决是否可以将“tail -f”命令输出到java程序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。