【问题标题】:Sending Java Version to textfile [duplicate]将Java版本发送到文本文件[重复]
【发布时间】:2017-02-17 18:52:11
【问题描述】:

我必须将 java 版本发送到如下文本文件

C:\>java -version > C:\cfn\log\JavaVersion.log

但是当我打开检查文件时,它完全是空的。我立即在下面的行中获得了版本-

C:\>java -version > C:\cfn\log\JavaVersion.log
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

我该如何解决这个问题?

【问题讨论】:

  • 查看副本和答案。他们也喜欢别人。 java 正在将此信息发送到 stderr。这是一种常见的做法。 PowerShell 认为这是一个错误。

标签: java command


【解决方案1】:

在我的 Mac 上,

java -version

打印到标准错误。

要将 stderr 重定向到文件,请执行以下操作:

java -version 2> foo.txt

有关如何在 Windows 上执行此操作,请参阅:

How to capture stderr on Windows/DOS?

【讨论】:

  • 这是完美的。非常感谢:)
【解决方案2】:

试试这个,它会在当前路径上创建一个文件。

java -version > JavaVersion.log 2>&1

或者这个,它将在指定路径上创建文件

java -version > C:\cfn\log\JavaVersion.log 2>&1

语法2>&1 会将2 (stderr) 重定向到1 (stdout)。您还可以通过重定向到NUL来隐藏消息

【讨论】:

  • 改进了我的答案,再次检查。
  • 这正是我一直在寻找的。你让我很开心。非常感谢:)
  • 当我在 powershell 中尝试与& java -version > C:\JavaVersion.log 2>&1 相同的操作时,当我尝试打开文件内容时,我看到的内容如下-java.exe : java version "1.8.0_121" At line:1 char:1 + & java -version > C:\JavaVersion.log 2>&1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (java version "1.8.0_121":String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Java(TM) SE Runtime Environment (build 1.8.0_121-b13 ) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
  • 这修复了上面的& cmd /c "java -version > C:\javaVersion.log 2>&1"
猜你喜欢
  • 2018-08-21
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多