Java 复制jar';使用nsis将文件复制到新文件夹

Java 复制jar';使用nsis将文件复制到新文件夹,java,deployment,environment-variables,nsis,Java,Deployment,Environment Variables,Nsis,我使用下面的脚本创建的安装程序将它包含的所有文件复制到一个文件夹中,我想在Calculator文件夹中创建一个文件夹lib,并将所有jar文件复制到lib文件夹中,这样我的应用程序就可以找到我在类路径中指定的jar。以及如何使用NSIS设置环境变量。请帮忙,因为我是NSIS的新手 ; Name of our application Name "Calculator" ; The file to write OutFile "Calculatorv1.0_Setup.exe" ; Set th

我使用下面的脚本创建的安装程序将它包含的所有文件复制到一个文件夹中,我想在
Calculator
文件夹中创建一个文件夹
lib
,并将所有jar文件复制到lib文件夹中,这样我的应用程序就可以找到我在类路径中指定的jar。以及如何使用NSIS设置环境变量。请帮忙,因为我是NSIS的新手

; Name of our application
Name "Calculator"

; The file to write
OutFile "Calculatorv1.0_Setup.exe"

; Set the default Installation Directory
InstallDir "$PROGRAMFILES\Calculator"

; Set the text which prompts the user to enter the installation directory
DirText "Please choose a directory to which you'd like to install this application."

; ----------------------------------------------------------------------------------
; *************************** SECTION FOR INSTALLING *******************************
; ----------------------------------------------------------------------------------

Section "" ; A "useful" name is not needed as we are not installing separate components

; Set output path to the installation directory. Also sets the working
; directory for shortcuts
SetOutPath $INSTDIR\

File G:\IMS\dist\Calculator.exe
File G:\IMS\dist\lib\*.jar

File a.nsi

WriteUninstaller $INSTDIR\Uninstall.exe

; ///////////////// CREATE SHORT CUTS //////////////////////////////////////

CreateDirectory "$SMPROGRAMS\Calculator"


CreateShortCut "$SMPROGRAMS\Calculator\Run Calculator.lnk" "$SYSDIR\javaw.exe" "NSISExampleApplication1"


CreateShortCut "$SMPROGRAMS\Calculator\Uninstall Example Application 1.lnk" "$INSTDIR\Uninstall.exe"

; ///////////////// END CREATING SHORTCUTS //////////////////////////////////

; //////// CREATE REGISTRY KEYS FOR ADD/REMOVE PROGRAMS IN CONTROL PANEL /////////

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calculator" "DisplayName"\
"Calculator (remove only)"

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calculator" "UninstallString" \
"$INSTDIR\Uninstall.exe"

; //////////////////////// END CREATING REGISTRY KEYS ////////////////////////////

MessageBox MB_OK "Installation was successful."

SectionEnd

; ----------------------------------------------------------------------------------
; ************************** SECTION FOR UNINSTALLING ******************************
; ----------------------------------------------------------------------------------

Section "Uninstall"
; remove all the files and folders
Delete $INSTDIR\Uninstall.exe ; delete self
Delete $INSTDIR\Calculator.exe
Delete $INSTDIR\a.nsi

RMDir $INSTDIR

; now remove all the startmenu links
Delete "$SMPROGRAMS\Calculator\Run Calculator.lnk"
Delete "$SMPROGRAMS\Calculator\Uninstall Calculator.lnk"
RMDIR "$SMPROGRAMS\Calculator"

; Now delete registry keys
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Calculator"
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Calculator"
SectionEnd

您可以通过使用
/r
标志递归添加文件来实现这一点:

File /r "G:\IMS\dist\*"

这将保留目录结构,JAR将被安装在
lib
子目录中。

如果应用程序需要的话。是一个桌面应用程序。(使用GUI)然后可以1)将罐子放在正确的位置。2) 根据需要自动更新它们。3) 设置属性和环境变量。-为什么计算器需要设置环境变量?请注意
/r
标志的特殊行为:如果您提供获取文件的模式(如
*.pl
),则在此示例中,您可以从
IMS
目录的子目录中获取其他.pl文件。手册中以某种隐晦的方式对其进行了解释。