在什么情况下我应该使用 System.in.close()?

In which case should I use System.in.close()?

当我阅读opentsdb的代码时:

try {
    System.in.close();  // Release a FD we don't need.
} catch (Exception e) {
    log.warn("Failed to close stdin", e);
}

在网上搜索这个问题后,我找不到合适的答案。我不明白他们为什么写system.in.close(),我想知道如果我们不添加这个代码块,会发生什么?

可能仅当您使用 System.setIn() 覆盖标准输入时。一般不会关闭标准输入,由JVM进程关闭处理。