Image

Imagem_a_m_o_n wrote in Imageru_java

Как дать приложению больше памяти?

Если я не ошибаюсь, с настройками по умолчанию максисмальный
обём памяти приложения 64 мегабайта или около того.

Для sun-jre этот параметр можно увеличить используя
опцию -Xmx 512M.

Проблема: приложение распространяется как 1,
один и только один, файл - jar-файл.

Насколько я накопал в интернете, в jar-файле, даже исполняемом,
указать требуемый обём памяти нельзя.
Написать bat/sh скрипт который будет запускать jar как:
javaw -Xmx 512M MySupedDuperOneJarSwingApp.jar

нельзя, потому что bat файл будет уже вторым файлом,
а должен быть только один файл.

Решение: при старте приложение проверять размер кучи,
и если он не достаточный делать
  Runtime.getRuntime().exec(new String[]{ //не тестировал, но должно работать
     "javaw", 
     "-Xmx","512M", 
     new File("MySupedDuperOneJarSwingApp.jar").getAbsolutePath(), "-memenough"}); 

и завершаться.

Решение с грацией гипопотама, есть лучше?