Или я делаю, что-то глупое или Sun. Каким образом что-то как:
java -version > version.txt
Все еще распечатывает к stdout и оставляет version.txt пустым? Я проверяю код выхода, и это все еще 0, так не, это пишет в stderr.
Мне нужно это, потому что я создаю инструмент тестовой среды и хочу проверить, соответствует ли версия Java, я планировал поймать тот вывод версии, но теперь я застреваю.
Я нахожусь на Leopard OS X, версии 1.6.0_20 Java.
Какие-либо идеи?
java -version &> version.txt
Код выхода не имеет никакого отношения, где он производит.
Это - своего рода функция в наше время.;-)
Из древнего отчета об ошибках:
Мы должны думать очень, очень тщательно прежде когда-либо исправлять эту ошибку. Это - очевидно, неправильная вещь к информации о печатной версии к stderr, но так как мы делали это с незапамятных времен, кажется вероятным, что мы повредим существующие системы, созданные сверху Java, если мы изменим его теперь. Если мы действительно решаем изменить это затем, это должно ожидать до выпуска Tiger так, чтобы соответствующее тестирование могло быть сделано.
Так же, как дополнение к ответу Ignacio:
Парсинг вывода java -version
довольно сложно и подвержен ошибкам (и вывод, как гарантируют, всегда не будет иметь тот же формат, особенно с не-Sun JVMs).
Для проверки версии Java Вы могли запустить маленькую программу Java, которая проверяет соответствующие системные свойства: посмотрите Javadocs для getProperties (). Это - официальный, зарегистрированный способ получить информацию о среде Java. Вы, вероятно, хотите проверить: