Я использую InstallAnywhere для установки моего приложения Java. В качестве этапа предварительной установки я беру данные базы данных у пользователя и сохраняю его в XML, который находится в каталоге установки. Во время установки я хочу передать этот XML-файл для создания соединения с БД. Как я могу настроить installanywhere для ссылки на этот внешний файл во время установки? Я не хочу связывать его с установщиком exe.InstallAnywhere: Как передать внешний файл в USER_INSTALL_FOLDER во время установки?
ответ
Создание XML-файла с нуля в InstallAnywhere было бы утомительным и подверженным ошибкам и, возможно, не межплатформенным.
Тем не менее, можно было бы отправить шаблон версии вашего XML-файла и заменить встроенные переменные в файле шаблона значениями, полученными от ваших пользователей.
Например, создайте файл, похожий на то, что показано ниже, которое поставляется с вашим приложением. Вы могли бы назвать его, скажем, connection.xml
:
<connection>
<user-name>$CONNECTION_USER_NAME$</user-name>
<password>$CONNECTION_PASSWORD$</password>
<database>$CONNECTION_DATABASE$</database>
</connection>
Собирает ввод данных пользователя в InstallAnywhere переменные, которые соответствуют переменным, которые вы встраивать в файле шаблон XML. В этом примере это будут $CONNECTION_USER_NAME$
, $CONNECTION_PASSWORD$
и $CONNECTION_DATABASE$
.
Добавить «Модифицировать текстовый файл - отдельный файл». Действие в вашем проекте. Установите флажок «Заменить параметры InstallAnywhere в файле». Это автоматически заменит ваши встроенные переменные IA значениями, полученными от пользователя.
После завершения действия «Модифицировать текстовый файл - отдельный файл» переменные в файле будут заменены значениями, введенными пользователем. Затем вы можете использовать connection.xml
для создания соединения с базой данных.
В после установки вы можете использовать действие Удалить файл для удаления XML-файла. Кроме того, вы можете снова запустить действие «Изменить текстовый файл - одиночный файл», чтобы найти и заменить пароль серией звездочек или другим маскирующим символом.
Cheers!