У меня есть пакетный файл install_license.bat
, в котором устанавливаются лицензии на наше программное обеспечение.Пакетный файл просто запускает Java-класс, который делает то, что нужно.А пакетному файлу нужны два параметра: действие install и путь к файлу лицензии, которые, в свою очередь, передаются в класс java.
C:\MySoftware\install_license.bat install "D:\documents\myLicense.lic"
Как часть нашего установщика, мы хотим дать пользователю возможность ввестипуть к лицензии.Если пользователь вводит путь, указанный пакетный файл должен запускаться как часть процесса установки, а если нет, то установка лицензии должна быть пропущена, т. Е. Вышеупомянутый пакетный запуск не должен выполняться.
Я знаю, как запустить пакет из установщика.
Однако java-программа, которая фактически устанавливает лицензию, выдает пользователю приглашение в строках:
Continue with license file installation? [y/N]
На основании ввода пользователем yes
или no
установкифайла лицензии продолжается.У меня нет контроля над тем, как работает этот класс Java, и я не могу его изменить.
Есть ли способ справиться с этим делом из NSIS.То есть при запуске пакета NSIS передает «y» для продолжения установки файла лицензии?
Вот файл bat:
@REM install_license.bat
@ECHO off
setlocal
set CMD_LINE_ARGS=
REM Gather all command line switches
:next_parm
IF [%1] == [] GOTO break_parm
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
SHIFT /1
GOTO next_parm
:break_parm
set LICENSE_PARAMETER=-Dinstalled.licenses.file="%INSTALLED_LICENSE_PATH%"
call "%_MY_JAVA%" %LICENSE_PARAMETER% -DCONSOLE_HOME=. -Dlog4j.configuration=log4j.xml -cp %CLASSPATH% org.somepackage.MyClass %CMD_LINE_ARGS%
endlocal