Как я могу запустить Java-апплет с большим объемом памяти?
Максимальная куча памяти по умолчанию 64 МБ может быть небольшой для большого Java-приложения. Есть ли параметр апплета для увеличения этого значения для подписанного апплета?
Для программы на Java это простой параметр командной строки, но как это работает для апплета в браузере.
7 ответов
Новая архитектура плагинов в JDK6u10 поддерживает это. До этого единственным способом сделать это была панель управления Java.
Используйте параметры JavaConsole -> Java -> Java Applet Runtime, чтобы определить начальное и максимальное распределение памяти (используя -Xms128 -Xmx512 или аналогичный).
Я понимаю, что более новые версии Java (6?) Позволяют разработчику влиять на эти настройки, но я там еще не был...
Добавьте в файл JNLP следующие строки в разделе "ресурсы"
j2se version="1.6+" initial-heap-size="256m" max-heap-size="1024m"
href="http://java.sun.com/products/autodl/j2se" /"
Есть возможность изменить это значение, установив параметр в примере. Он работает, так как подробности java1.6.0_10 на https://jdk6.dev.java.net/plugin2/
На самом деле, запуск апплета внутри Java Web Start (JNLP) позволяет вам указать те же ограничения памяти, что и для обычного Java-приложения. (Xms и Xmx).
По умолчанию JNLP поддерживает апплеты, поэтому в большинстве случаев не требуется никаких изменений кода.
Это можно сделать несколькими способами:
i) путем увеличения значений Xms, Xmx и Xmn вместе с аргументами java MaxPermSize в панели управления java; и / или
ii) добавив тег java_arguments PARAM к тегу OBJECT в jsp / html:
Эта ссылка проливает больше света на это: http://technoguider.com/2015/06/memory-requirements-for-an-applet/
Не то чтобы я знал наверняка, я давно не писал апплеты, но я не думаю, что вы можете установить это из апплета.
По-видимому, вы можете установить размер кучи JVM для JVM браузера с панели управления подключаемого модуля Java, но это то, что пользователь должен сделать перед запуском вашего апплета.
Вы всегда можете проверить http://forums.sun.com/thread.jspa?threadID=523105&messageID=3033288 для получения дополнительной информации по этой теме.