Выделите больше места для кучи в банку Java - PullRequest
9 голосов
/ 01 мая 2009

Когда вы запускаете программу из командной строки, вы можете использовать java -Xms -Xmx, чтобы указать размеры кучи. Если программа будет запущена двойным щелчком по файлу .jar, есть ли способ использовать больше кучи, чем стандартный?

Ответы [ 4 ]

8 голосов
/ 01 мая 2009

Нет. Вот почему я часто делаю .bat или .sh файл с этими параметрами и даю пользователям команду запускать его вместо .jar. К сожалению, немного уродливо открывать окно командной строки, но с этим ничего не поделаешь.

В качестве дополнительного преимущества, если ваше приложение зависает, вы можете указать пользователям поместить pause в пакетный файл (или сделать это самостоятельно), а затем вы сможете увидеть любую возникающую трассировку стека.

Редактировать: Вы также можете использовать исполняемый файл оболочки, например JSmooth или Launch4J вместо командного файла. Однако вы потеряете некоторую кроссплатформенную совместимость.

5 голосов
/ 02 мая 2009

Вы можете снова запустить jar с помощью Runtime.getRuntime (). Exec () с нужными вам опциями. В jar может содержаться более одного метода main () (в разных классах), и вы можете вызывать один из них через exec ().

5 голосов
/ 01 мая 2009

Вместо двойного щелчка по файлу .jar вы можете использовать командный файл, который запускает java -jar -Xms -Xmx your_file.jar. С точки зрения пользователя, это то же самое, но дает вам больший контроль над фактически выполняемой командой.

2 голосов
/ 01 мая 2009

Вы можете использовать JSmooth или подобную оболочку, которая создает EXE-файл, запускающий JVM с необходимыми параметрами. Таким образом, вы можете избежать файла .bat и его диалогового окна консоли. Еще один способ - запустить реальную программу в новом процессе с помощью Runtime.exec или ProcessBuilder.

...