我尝试执行:
cmd /c java -version > someFile.txt
cmd /c echo java -version > someFile.txt
但是没有任何内容写入我正在重定向到的文件中。
答案 0 :(得分:3)
捕获stderr而不是stdout:
java -version 2> someFile.txt
java -fullversion 2> someFile.txt
cmd /c java -version 2> someFile.txt
This解释了为什么Java将帮助写入stderr:
在修复此错误之前,我们应该非常非常仔细地思考。 将版本信息打印到stderr显然是错误的, 但是,因为我们从一开始就一直在这样做 如果我们这样做,我们可能会破坏基于Java构建的现有系统 现在改变它。如果我们决定改变它,那么它必须等到 Tiger发布,以便进行充分的测试。
答案 1 :(得分:1)
Java将此信息写入标准错误而不是标准输出,因此您需要重定向正确的通道
cmd /c java -version 2> someFile.txt
这很有效。