У меня есть приложение Java Webstart, которое начинается успешно с -Xmx1G
, но не начинается с -Xmx2G
. Некоторые из моих пользователей действительно нуждаются в 2G кучи.Приложение Webstart не запускается с -Xmx2G на Java 8u60
Это похоже на проблему с Java 8u60, потому что у меня есть отчет о том, что кто-то успешно запускается с Java 8u51.
Ошибка выглядит следующим образом: я вижу синий экран «Java ...», а затем через несколько секунд poof он исчез, прежде чем отображать консоль Java и не создает никакой информации трассировки в ожидаемом место.
Сбой происходит только на тех клиентах, у которых имеется менее 2 Гб памяти. Но я немного удивлен тем, что запрос «максимального» размера кучи может привести к сбою приложения так рано и без какой-либо диагностической информации. В конце концов, мы имеем дело с «максимальным» значением, а не «начальным» значением. Я читал в нескольких местах, что JVM не должен это делать.
Но я также помнил, что «начальное», если не указано, основано на максимуме. Итак, вместе с прохождением -Xmx2G
, я пробовал пройти -Xms512M
, -Xms256M
и -Xms128M
. Но эта попытка уменьшить размер первоначальной кучи не помогла. Я не могу получить эту вещь, чтобы начать с -Xmx2G
!
Есть ли у кого-нибудь свет, чтобы избавиться от этой ситуации? Решение? Обходной путь? В краткосрочной перспективе я перейду на -Xmx1G
, но, как я сказал в начале, у меня есть некоторые пользователи, которым действительно нужно -Xmx2G
. Я бы хотел, чтобы у вас не было двух отдельных файлов *.jnlp
, что также повлекло бы наличие двух отдельных файлов *.jar
!
Если JNLP не может начать, его маловероятное нормальное начало работы улучшится. BTW: вы проверяли, используется ли 64-битный jvm? – eckes
Забавно, что вы должны сказать, что --- Кажется, я сталкиваюсь с новой проблемой веб-старта каждые 2-3 месяца, хотя мое приложение всегда начинается локально. Нет, я не проверял, была ли клиентская машина/JRE 32-битной или 64-битной. Тем не менее, я мог бы запустить приложение или не начать, просто перейдя с аргументом в '-Xmx', а точка отказа соответствовала доступной памяти, поэтому я вполне уверен, что это причина. –