繁体   English   中英

从NSIS脚本传递参数到java vm

[英]Passing arguments to java vm from NSIS script

我正在使用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文件路径中的空格导致问题。 我想我要么找到一种在命令中添加引号的方法,如手动更改目标时所示,或者完全改变我的方法!

可以使用单引号,双引号或后向单引号引用NSIS字符串。 你也可以用$ \\($ \\“等)逃脱

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”周围加上引号,即使没有空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM