Я хочу установить минимальную версию JVM, на которой должно работать мое приложение, до версии 1.6 или выше (т.е. 1.6+). Насколько я понимаю, это можно сделать с помощью аргумента командной строки "-version:". Я попробовал, и мне показалось, что он отлично работает под Linux, но не под Windows.
LINUX
У меня установлена версия JDK 1.6.0_21 на машине Linux. Переменные среды $ JAVA_HOME и $ PATH были установлены такими, какими они должны быть.
Я выполнил следующее:
$ java -version:1.6+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
$ java -version:1.5+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
$ java -version:1.7+ -version
Unable to locate JRE meeting specification "1.7+"
Все казалось ожидаемым. "версия: 1.6+" и "версия: 1.5+" должны работать, потому что у меня установлен JDK 1.6.0_21, а "версия: 1.7+" не должна работать, потому что у меня не установлен JDK 1.7.
WINDOWS
У меня тот же JDK версии 1.6.0_21 установлен на компьютере с Windows (точнее, Windows 7). Переменные среды% JAVA_HOME% и% PATH% были установлены такими, какими они должны быть.
Я выполнил следующее:
$ java -version:1.6+ -version
Unable to locate JRE meeting specification "1.6+"
$ java -version:1.5+ -version
Unable to locate JRE meeting specification "1.5+"
$ java -version:1.7+ -version
Unable to locate JRE meeting specification "1.7+"
Я получал ошибку при каждом выполнении.
Кто-нибудь может объяснить, почему одна и та же командная строка аргумент работает на Linux, но не на Windows? Это функция или ошибка?
Что я могу сделать, чтобы исправить / обойти это? Насколько это возможно, я хочу, чтобы в Linux и Windows применялись одни и те же аргументы командной строки, поэтому мне не нужно указывать другой аргумент «-version:» для Linux и другой аргумент для Windows.
Спасибо.