Java - версия не пишет в stdout?

Или я делаю, что-то глупое или Sun. Каким образом что-то как:

java -version > version.txt

Все еще распечатывает к stdout и оставляет version.txt пустым? Я проверяю код выхода, и это все еще 0, так не, это пишет в stderr.

Мне нужно это, потому что я создаю инструмент тестовой среды и хочу проверить, соответствует ли версия Java, я планировал поймать тот вывод версии, но теперь я застреваю.

Я нахожусь на Leopard OS X, версии 1.6.0_20 Java.

Какие-либо идеи?

2
задан 20.05.2010, 13:00

3 ответа

java -version &> version.txt

Код выхода не имеет никакого отношения, где он производит.

9
ответ дан 08.12.2019, 04:36

Это - своего рода функция в наше время.;-)

Из древнего отчета об ошибках:

Мы должны думать очень, очень тщательно прежде когда-либо исправлять эту ошибку. Это - очевидно, неправильная вещь к информации о печатной версии к stderr, но так как мы делали это с незапамятных времен, кажется вероятным, что мы повредим существующие системы, созданные сверху Java, если мы изменим его теперь. Если мы действительно решаем изменить это затем, это должно ожидать до выпуска Tiger так, чтобы соответствующее тестирование могло быть сделано.

9
ответ дан 08.12.2019, 04:36

Так же, как дополнение к ответу Ignacio:

Парсинг вывода java -version довольно сложно и подвержен ошибкам (и вывод, как гарантируют, всегда не будет иметь тот же формат, особенно с не-Sun JVMs).

Для проверки версии Java Вы могли запустить маленькую программу Java, которая проверяет соответствующие системные свойства: посмотрите Javadocs для getProperties (). Это - официальный, зарегистрированный способ получить информацию о среде Java. Вы, вероятно, хотите проверить:

  • java.version (точный номер версии установки Java, например, 1.6.0_15)
  • java.specification.version (версия платформ Java, например, 1.5 или 1.6)
1
ответ дан 08.12.2019, 04:36

Теги

Похожие вопросы