Я разрабатываю свое первое 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 подкачивается. Проблема остается тем же как бы то ни было. Пробелы в пути к файлу банки вызывают проблему. Я думаю я или должен найти способ добавить кавычки в команду, как показано когда я вручную изменяю цель или изменяю мой подход полностью!
Строки NSIS могут быть заключены в одинарные кавычки, двойные кавычки или обратные одинарные кавычки. Вы также можете выйти с помощью $ \ ($ \ "etc)
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: \ WINDOWS \ system32 \ javaw.exe" в кавычки, даже если там нет пробелов.