Я разрабатываю свое первое Java-приложение с использованием Eclipse. Недавно мне нужно было отрегулировать объем памяти, выделенный путем передачи -Xmx256M в JVM. Приложение в настоящее время упаковано как исполняемый файл jar и установлено с использованием NSIS.
У меня проблема с передачей аргументов в файл jar после его установки. Какова общая практика для этого? Вот что я сейчас делаю в моем nsi-файле:
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" "$SYSDIR\javaw.exe" "-Xmx256M -jar $INSTDIR\Foo.jar"
В результате в качестве ярлыка Цель в Windows создается следующее:
C:\WINDOWS\system32\javaw.exe -Xmx256M -jar C:\Program Files\Foo\Foo.jar
К сожалению, это не работает из-за пробела в C: \ Program Files. Если я изменю созданную вручную ссылку, чтобы включить кавычки, все будет хорошо:
C:\WINDOWS\system32\javaw.exe -Xmx256M -jar "C:\Program Files\Foo\Foo.jar"
ОБНОВЛЕНИЕ: порядок -jar и -Xmx256M поменялся местами. Однако проблема остается той же. Пробелы в пути к файлу jar вызывают проблему. Я думаю, что мне нужно либо найти способ добавления кавычек в команду, как показано, когда я вручную изменяю цель, либо полностью изменить свой подход!