2017-02-17 5 views
1

я должен послать версию Java в текстовый файл, как показано нижеОтправка Java Версия для Textfile

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

Когда я пытаюсь сделать то же самое в powershell как '& java -version> C: \ JavaVersion.log 2> & 1', & когда я пытаюсь открыть содержимое файла, ниже показано, что я вижу - ' java.exe: java version "1.8.0_121" В строке: 1 char: 1 + & java -version> C: \ JavaVersion.log 2> & 1 + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (версия java "1.8.0_121": String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError Java (TM) SE Runtime Environment (сборка 1.8.0_121-b13 ) Java HotSpot (ТМ) 64-разрядного сервера ВМ (сборка 25.121-b13, смешанный режим) '. –

0

На мой макинтош,

java -version 

печать на STDERR.

Чтобы перенаправить поток ошибок в файл, сделать что-то вроде:

java -version 2> foo.txt 

о том, как это сделать на Windows, см:

How to capture stderr on Windows/DOS?

+0

Это идеальный вариант. Большое спасибо :) –

Смежные вопросы