2017-02-17 81 views
1

我有Java版本發送到一個文本文件,如下發送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) 

我該如何解決這個問題?

+0

看那DUP和答案。他們也喜歡其他人。 java發送這個信息給stderr。這是一個普通的例子。 PowerShell將其視爲故障。 – Matt

回答

0

試試這個會在當前路徑上創建一個文件。

java -version > JavaVersion.log 2>&1 

或這一個,這將指定的路徑

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

語法2>&1上創建文件將重定向2 (stderr)1 (stdout)。您還可以通過重定向到NUL

+0

改進了我的答案,再次檢查。 –

+0

這就是我正在尋找的東西..你做了我的一天。謝謝:) –

+0

當我在'&java -version> C:\ JavaVersion.log 2>&1'的PowerShell中嘗試同樣的東西時,當我嘗試打開文件的內容時,下面是我看到的 - ' java.exe:java version「1.8.0_121」 At line:1 char:1 +&java -version> C:\ JavaVersion.log 2>&1 + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~類別信息:未指定:(java版本「1.8.0_121」:字符串)[],遠程異常012xxFullyQualifiedErrorId:NativeCommandError 的Java(TM)SE運行時環境(建立1.8.0_121-B13 ) 爪哇熱點(TM)64位服務器VM(生成25.121-B13,混合模式)'。 –

0

在我的Mac隱藏的消息,

java -version 

打印到標準錯誤。

重定向錯誤輸出到一個文件,這樣做:

java -version 2> foo.txt 

對於如何做到這一點在Windows上,請參閱:

How to capture stderr on Windows/DOS?

+0

這是最完美的一個。非常感謝 :) –