带有Java参数的NSIS快捷方式

问题描述 投票:0回答:1

我正在构建需要参数的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的任何建议或帮助都非常糟糕。

java windows nsis shortcut
1个回答
0
投票

这是您需要的:

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`

((不必[[必要使用\将其拆分为多行,但可以提高可读性。)]

说明:

syntax for CreateShortCutCreateShortCut(有更多参数,但是您需要这些)

现在,目标文件只是Java本身,因此将其设置为CreateShortCut link.lnk target.file parameters icon.file。字符串的其余部分实际上是传递给Java的参数,因此它们进入了第3个参数。

注意,我也对引号做了一些修改:

这是因为您的$INSTDIR\files\java-runtime\bin\java.exe很可能是$INSTDIR,其中包含空格。在这种情况下,它将中断,因为它将变为C:\Program Files并且Java将读取--module-path C:\Program Files\thing\files\javafx13\lib ...作为模块路径的值!因此,这些路径周围必须有C:\Program doublequotes "

但是,这与最初用于NSIS的整个“参数”参数的引号冲突,这就是为什么我将其封装在"反引号`中而不是` doublequotes "中。 (为清楚起见,我在所有NSIS参数中都使用了反引号。)

© www.soinside.com 2019 - 2024. All rights reserved.