Java версии проверки кода выхода в Windows изменились в Java 7? - PullRequest
2 голосов
/ 26 февраля 2012

Запустите следующее в Windows:

java -version:1.5+

echo %ERRORLEVEL%

Если вы запустите его с Java 5 или Java 6, вы получите выходкод 0 означает успех (то есть версия не менее 1,5).

Если вы запустите его с Java 7, вы получите код выхода 1, что означает сбой.

Любой, кто столкнулся с этим изнаете, что случилось?

1 Ответ

1 голос
/ 26 февраля 2012
Синтаксис

-version:<value> предназначен для того, чтобы запросить программу запуска на выполнение определенной версии JVM. То есть запустите приложение Java или версию для печати (-?). Но цель не указана, и это ошибка. Launcher печатает использование и возвращает 1. То же, что бегущая строка java.exe без каких-либо параметров. Я считаю, что поведение, наблюдаемое в предыдущих выпусках, является лишь незначительной ошибкой, исправленной в Java 7.

РЕДАКТИРОВАТЬ Вы можете запустить java -version:1.5+ -version. Это требует, чтобы программа запуска проверила доступные виртуальные машины и версию для печати (это всегда успешная операция). Менее многословно, чем -? опция.

Другой вариант - создать некоторый класс-заглушку с методом main, который ничего не будет делать. Тогда успешная проверка будет полностью молчать. java -version:1.5+ your.stub.MainClass

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...