我正在使用Eclipse开发我的第一个Java应用程序。我最近需要通过将-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文件路径中的空格导致问题。我想我要么找到一种在命令中添加引号的方法,如手动更改目标时所示,或完全改变我的方法!
答案 0 :(得分:4)
NSIS字符串可以使用单引号,双引号或后向单引号引用。您也可以使用$ \($ \“etc)
进行转义CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" '"$SYSDIR\javaw.exe"' '-Xmx256M -jar "$INSTDIR\Foo.jar"'
答案 1 :(得分:2)
您是否尝试过保留引号但转义路径分隔符?
C:\WINDOWS\system32\javaw.exe -Xmx256M -jar "C:\\Program Files\\Foo\\Foo.jar"
答案 2 :(得分:1)
非常确定你应该在“C:\ WINDOWS \ system32 \ javaw.exe”周围加上引号,即使没有空格。