繁体   English   中英

带有java参数的NSIS快捷方式

[英]NSIS shortcut with java parameters

我正在构建一个需要参数的 Java 应用程序。 问题是我准备了一个文件夹,里面包含运行我的 jar 所需的一切。 我有一个 javafx 文件夹和一个 JRE 文件夹,使我的应用程序独立/非 JRE 系统依赖。 这是我的 NSIS 文件夹的结构:

root folder
 |
 |_uninstaller.exe
 |
 |_subFolder
   |
   |_JREfolder
   |  |
   |  |_JRElibs
   |
   |_JFXfolder
   |  |
   |  |_JFXlibs
   |
   |_OtherResourcesFolders
   |_MainClass.jar 
   |_otherJars.jar

事情是在我的电脑中启动我的 jar,我需要在 cmd 上使用以下句子:

"C:\Program Files\Java\jdk-13\bin\java.exe" --module-path "C:\Program Files\Java\javafx13\lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics,javafx.web,javafx.base --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED -jar clienteCorreoDefinitivo.jar

所以,当我制作 NSIS 快捷方式时,我尝试了以下句子,但它不起作用:

createShortCut "$DESKTOP\ClienteCorreoStephane.lnk" "$INSTDIR\files\java-runtime\bin\java.exe --module-path $INSTDIR\files\javafx13\lib --add-modules javafx.controls,javafx.fxml,javafx.graphics,javafx.web,javafx.base --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED -jar $INSTDIR\files\clienteCorreoDefinitivo.jar" "" "$INSTDIR\files\recursos\myicon.ico"

关于如何使用这些参数启动这个 jar 的任何建议或帮助都会很棒。

这是你需要的:

CreateShortCut \
  `$DESKTOP\ClienteCorreoStephane.lnk` \
  `$INSTDIR\files\java-runtime\bin\java.exe` \
  `--module-path "$INSTDIR\files\javafx13\lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics,javafx.web,javafx.base --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED -jar "$INSTDIR\files\clienteCorreoDefinitivo.jar"` \
  `$INSTDIR\files\recursos\myicon.ico`

(没有必要使用\\将其拆分为多行,但会增加可读性。)

解释:

CreateShortCut语法CreateShortCut link.lnk target.file parameters icon.file (还有更多参数,但这些是你需要的)

现在,目标文件只是 Java 本身,因此将其设置为$INSTDIR\\files\\java-runtime\\bin\\java.exe 字符串的其余部分实际上是传递给 Java 的参数,因此它们进入了第三个参数。

请注意,我还稍微修改了引号:

这是因为您的$INSTDIR很可能是包含空格的C:\\Program Files 在这种情况下,它会中断,因为它会变成--module-path C:\\Program Files\\thing\\files\\javafx13\\lib ...并且 Java 会读取C:\\Program作为模块路径的值! 出于这个原因,这些路径周围必须有"双引号"

但是,这会与 NSIS 的整个“参数”参数最初使用的引号发生冲突,这就是为什么我将其封装在`反引号`而不是"双引号" (为了保持一致性,我当时对所有 NSIS 参数都使用了反引号。)

暂无
暂无

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

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