gpt4 book ai didi

java - 如何获取映射到标准输出/错误的文件?

转载 作者:行者123 更新时间:2023-12-01 15:36:34 27 4
gpt4 key购买 nike

当我的 Java 程序启动时,标准输出和错误将使用如下命令重定向到某些特定文件 (unix):

> java org.company.MyClass 1>/path/to/some/file 2>/path/to/err/file

有没有办法从 Java 程序中读取此信息?我的要求是在与标准输出相同的目录中写入一个文件。

unix脚本实际上是启动java批处理程序的脚本。 Java程序本身使用log4j,但是登录到控制台,因此日志最终写入这些文件。我无法在 log4j 配置中指定文件附加程序,因为文件的路径是由 unix 脚本确定的,而不是由 Java 程序确定的。理想情况下,unix 脚本应该生成 Java 程序使用的 log4j 配置文件,但这相当复杂;这不可能。

最佳答案

不可能执行此操作,因为您只能检索文件本身。您可以查找该文件,但通过硬链接(hard link),该文件可能会出现在多个目录中。如果您需要这个解决方案,我建议您这样做

java org.company.MyClass /path/to/some/file /path/to/err/file

并使用 System.setOut 和 System.setErr 将输出定向到文件。这样你也会知道他们的路径。

另一种方法是这样做

java org.company.MyClass /path/to/some 1>/path/to/some/file 2>/path/to/err/f

关于java - 如何获取映射到标准输出/错误的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8756637/

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