У меня есть настольное приложение Java для поиска файлов, и он обычно достигает предела "кучи" по умолчанию довольно скоро. Я привычка имеет доступ ко всем системам, это будет установлено в том, таким образом, я захочу увеличить размер "кучи" JVM в самом приложении. Кто-либо может помочь мне, как я могу сделать это программно в моем приложении
Настройка -xmx на один гиг не означает, что JVM выделит столько памяти при запуске. JVM выделит только -xms (плюс накладные расходы) до тех пор, пока не требуется большее количество кучи. Вам необходимо защитить своих пользователей из виртуальной памяти или неисправного распределения памяти из ОС? Если нет, просто установите XMX в большое значение. Обратите внимание, что Windows 32BIT JVMS часто игнорирует настройки XMX более 1.2GIG, поэтому лучше не запросить больше, чем Gig или так, чтобы быть в безопасности.
Нет такого стандартного API для этого.
Я бы предложил, чтобы вы использовали Java Web Start, чтобы вызвать ваше приложение (можно использовать для локальных приложений, чтобы в последнем Sun Java 6), поскольку он позволяет вам указывать значения для этого.
Затем вы можете иметь три или четыре ссылки, каждый из которых указывает на одни и те же файлы, но с «крошечными», «средой», «большими», «гигантскими» размерами кучи.
Посмотреть этот пост о увеличении размера кучи Java:
Увеличьте размер кучи Java навсегда?
Может быть, также можете убрать некоторую часть вашего кода, чтобы уменьшить использование памяти.
С наилучшими пожеланиями
Посмотрите на что-то вроде Launch4j и рассмотрите возможность развертывания исполняемых файлов, где вы можете управлять пределом, когда кто-то начинает запуск вашего приложения.
Вы не сможете это сделать программно.
Для настольных приложений я предлагаю обеспечить задержку, которое может указать нужный размер памяти. В дополнение к конфигурации вашего JVM вы также можете предоставить значок, файловые ассоциации и т. Д.
См. См. Настоящий вопрос для альтернатив развертывания.