2015-07-05 3 views
1

Звучит странный вопрос, но есть причина.Как использовать java в cmd для получения стабильного результата?

Я работаю над тем, чтобы использовать код VC++, чтобы узнать максимальную память, которую может использовать JVM. Я хочу использовать java cmd для запуска JVM просто.

Мои мысли были:

Запуск java -Xmx3999G -version как команды и выход, если виртуальная машина запущена успешно, там будет что-то вроде

java version "1.8.0_45"

Java(TM) SE Runtime Environment (build 1.8.0_45-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

В противном случае это будет что-то вроде

Error occurred during initialization of VM Unable to allocate

131039232KB bitmaps for parallel garbage collection for the r equested

4193255424KB heap. Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

Теперь ключ заключается в том, как узнать, запущена ли JVM или нет? Я могу найти некоторые ключевые слова для вывода, такие как java version, чтобы узнать, что он запущен. Но выход будет неустойчивым, если обновление java или что-то еще.

Устойчивый способ, которым я могу придумать, - это запустить Java-код, который имеет неизменный вывод (просто напечатать простую строку в основной функции может это сделать). Но мне нужно, чтобы я упаковал файл jar в файл rc моего проекта и распаковывал его в папку temp и запускал его в cmd. Я думаю, что это немного сложно.

Итак, я прошу о помощи здесь, может ли любая команда java дать мне стабильный вывод, если JVM запущен?

ответ

0

Как насчет java -help? Его вывод всегда будет содержать список команд, которые, несомненно, содержат стабильное подмножество.

Кроме этого, вы все же можете повторно протестировать, как только появится новая версия JDK. Это очень маловероятно, что на выходе больше изменений. Вот выход из Java версии 1.6.0_45:

java version "1.6.0_45"

Java(TM) SE Runtime Environment (build

1.6.0_45-b06) Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)

и здесь от Java версии 1.7.0_75:

java version "1.7.0_75"

Java(TM) SE Runtime Environment (build 1.7.0_75-b13)

Java HotSpot(TM) Client VM (build 24.75-b04, mixed mode, sharing)

Они очень похожи на 1.8.x для самого номера версии, за исключением.

+0

Как узнать, что результат от 'java -help' не другие? Просто найдите, выводится ли 'java [-options] класс [args ...]'? – zzy

+0

, например. проанализируйте вывод строки за строкой и найдите подстроки, такие как '-cp' и/или' -version'etc. –

+0

Большое спасибо, я думаю, что мое требование было бы необоснованным, но мой босс не может мириться с 1% -ой ошибкой. – zzy

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