InstallJMRI.exe and LaunchJMRI.exe are two different NSIS-generated programs: - InstallJMRI.exe is used to create an installable software package. - LaunchJMRI.exe is used to start a JMRI package after it has been installed (using InstallJMRI.exe). -------- Note on InstallJMRI.exe -------- Developers are _not recommended_ to use the NSIS "interactive GUI" tool to generate the "InstallJMRI.exe" program. The "InstallJMRI.exe" tool is best done via the "ant package-windows" target. -------- Notes on LaunchJMRI.exe -------- 1. Why isn't LaunchJMRI.exe re-generated as part of "package-windows"? The definitive copy of LaunchJMRI.exe is kept in Git in this directory. This keeps it stable in the interest of managing the large number of anti-virus approaches on Windows systems. As such, changes to LaunchJMRI.nsi should be changed only when necessary. We _do not_ regularly remake the LaunchJMRI.exe file as part of the build of the release package. This is because the LaunchJMRI.exe package is subject to the various "Anti-Virus" checks. Every time it changes, it takes a while for the virus checkers to calm down". And that means user complaints... So note that this ant target is not included in the package-windows target! Modify the LaunchJMRI.nsi file ONLY when necessary, and ONLY commit changes to LaunchJMRI.nsi and/or LaunchJMRI.exe when they are NEEDED! 2. Which NSIS version was used? This executable was generated using NSIS version 3.09 with the "Special build" called "Large strings". This was downloaded from nsis.sourceforge.io in early December, 2023. 3. How should I make a new LaunchJMRI.exe? (See LaunchJMRI.exe item 1. above!) Should you need to recreate the LaunchJMRI.exe program, use ant launchjmri.exe or execute on Linux: /opt/local/bin/makensis -V2 LaunchJMRI.nsi Note that there have been problems reported doing this on MacOS, though others have made it work. Check that the length of the created file is reasonable. 4. How are the NSIS "parameters" used? - When the "/debug" parameter is selected, the launcher opens a window that is independent of JAVA, that effectively contains "debugging log" that the Launcher functionality provides. This window remains alive until JMRI exits, and the JAVA code returns a "completion" code to the Launcher. If used from a "command prompt", this window must be closed before the command prompt can be used for additional commands. - When the "/noisy" parameter is selected, the launcher opens a window that is independent of JAVA which effectively contains the JMRI "console log". This window remains alive during the entire JMRI run. - These parameters are separate from JMRI's "parameters". JMRI' parameters are discussed in the "help" for the "developers" page about "How the startup scripts work", at: https://www.jmri.org/help/en/html/doc/Technical/StartUpScripts.shtml .