Создайте командный файл вместо исполняемого с помощью InstallAnywhere - PullRequest
1 голос
/ 13 февраля 2012

Я использую InstallAnywhere для создания исполняемых файлов для моих jar-файлов для нескольких платформ. Так что установка в любом месте создает .sh для Unix и .exe для Windows.

Но за 1 банку я хочу создать пакетный файл вместо exe для Windows. Я все еще хочу .sh для Unix.

Я не могу найти ни одного слабого свойства для достижения этой цели. Как я могу это сделать?

1 Ответ

1 голос
/ 19 февраля 2013

Нет способа сделать это в InstallAnywhere. InstallAnywhere хочет создавать собственные цели выполнения во время установки. Самое близкое, что вы можете получить, это создать исполняемый файл только для консоли.

Однако вы можете написать свои собственные командные файлы и отправить их как часть установки. Если вам нужно включить информацию о пути (или другую информацию о времени установки), вы можете добавить переменные InstallAnywhere, например $IA_CLASSPATH$, и заменить их во время установки.

Используйте действие «Изменить текстовый файл - один файл» для изменения командных файлов (или других текстовых файлов) при установке.

Чтобы мы могли протестировать наши пакетные файлы, мы вставляем позиционные аргументы, которые присваиваются переменным сценария. Во время разработки мы вручную предоставляем позиционные аргументы. Во время установки мы заменяем позиционные аргументы значениями из InstallAnywhere.

Например:

@echo off
set APP_USER=%1
set APP_PASSWORD=%2
set APP_DIR=%3
set CLASSPATH=%CLASSPATH%;$IA_CLASSPATH$;./lib/myapp.jar

cd %APP_DIR%

java -cp %CLASSPATH% com.example.myapp.Main %APP_USER% %APP_PASSWORD%

Мы добавили действие «Изменить текстовый файл - один файл» в наш проект. Мы используем параметр «Поиск и замена строк:» для замены позиционных аргументов. В этом примере мы заменили бы% 1 и% 2 на значения, собранные во время установки, и заменили% 3 на $USER_INSTALL_DIR$. Чтобы заменить любые переменные InstallAnywhere (в данном случае $IA_CLASSPATH$), установите флажок «Заменить переменные InstallAnywhere в файле».

...