簡體   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