java - 有没有办法获得像unix中/dev/null这样的位桶的路径?

标签 java file io

我想放弃进程中的重定向错误。 我也知道apache中NullWriter的存在。 但是,进程只接受文件,不是吗?

据我所知,例如/dev/null 这样的特殊文件(空设备)在 Windows 中有另一个路径..

所以我的问题是我是否以及如何获得这样的路径? 否则,我应该为每个操作系统或平台手动设置一个吗?

我的代码是

File bitBucket = isUnix())? new File("/dev/null"): new File("NULL");
ProcessBuilder pb = new ProcessBuilder("mpirun", "-np", 100, "mpi-tip").redirectError(bitBucket);
pb.start();

我想更改第一行 文件但Bucket = getNullDevice();//像这样。

如果只有 ProcessBuilder 接受 Writer,我可以使用 NullWriter...

最佳答案

也许您还需要提供更多信息。我假设您想抑制 mpirun 的错误输出。默认情况下,启动进程的 stdoutstderr 输出不会合并到 JVM 输出中。

在下面找到一个演示片段

to_stderr.sh - 打印到 stdoutstderr 的帮助程序脚本

#!/bin/bash
(>&2 echo "to stderr")
echo "to stdout"

验证脚本

# supress output to stdout
./to_stderr.sh > /dev/null
to stderr

# supress output to stderr
./to_stderr.sh 2> /dev/null
to stdout

现在在 Java 中

class Main {
    public static void main(String[] args) throws Exception {
        ProcessBuilder pb = new ProcessBuilder("./to_stderr.sh");
        pb.start();
    }
}

编译并运行

javac Main.java && java Main

只要您不重定向进程中的错误或输出,这不会在控制台上输出任何内容。

那么为什么你想要/需要重定向到 /dev/null

关于java - 有没有办法获得像unix中/dev/null这样的位桶的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266809/

相关文章:

java - 核心java中的文件处理

java - 当应该使用带有自动注入(inject)字段的方法时,突变没有被终止

java - 显示具有两个面板的 GUI,每个面板包含三个按钮

c++ - C中有许多进程的文件打开问题

php - 如何设置PHP将文件下载到特定目录?

c++ ostringstream 提高 IO 性能?

java - 获取 Reader/InputStream 的类/接口(interface)

java - .txt 文件出现文件未找到错误,但 .m3u 文件未出现错误?

java - 使用 while 循环验证输入

java - 尝试打开 jasper 报告时从 java 中的 InputStream 加载对象时出错