Передающие аргументы Java vm из сценария NSIS

Я разрабатываю свое первое JAVA-приложение с помощью Eclipse. Я должен был недавно скорректировать объем памяти, выделенный путем передачи-Xmx256M к JVM. Приложение в настоящее время является пакетом как выполнимой банкой и установленным использованием NSIS.

У меня есть проблема передающие аргументы файлу банки однажды его установленный. Какова обычная практика для того, чтобы сделать это? Вот то, что я в настоящее время делаю в своем nsi файле:

CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" "$SYSDIR\javaw.exe" "-Xmx256M -jar $INSTDIR\Foo.jar"

Это приводит к следующему, создаваемому как Цель ярлыка на окнах:

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"

ОБНОВЛЕНИЕ: Упорядочивание - банка и-Xmx256M подкачивается. Проблема остается тем же как бы то ни было. Пробелы в пути к файлу банки вызывают проблему. Я думаю я или должен найти способ добавить кавычки в команду, как показано когда я вручную изменяю цель или изменяю мой подход полностью!

5
задан CodeBuddy 1 April 2010 в 20:01
поделиться

3 ответа

Строки NSIS могут быть заключены в одинарные кавычки, двойные кавычки или обратные одинарные кавычки. Вы также можете выйти с помощью $ \ ($ \ "etc)

CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" '"$SYSDIR\javaw.exe"' '-Xmx256M -jar "$INSTDIR\Foo.jar"'
4
ответ дан 14 December 2019 в 08:46
поделиться

Вы пытались сохранить кавычки, но избегая разделителей путей?

C:\WINDOWS\system32\javaw.exe -Xmx256M -jar "C:\\Program Files\\Foo\\Foo.jar"
2
ответ дан 14 December 2019 в 08:46
поделиться

Конечно, вы должны заключить "C: \ WINDOWS \ system32 \ javaw.exe" в кавычки, даже если там нет пробелов.

1
ответ дан 14 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: