установщик, созданный install4j, не работает с использованием параметров -q -varfile

#install4j

#install4j

Вопрос:

Мое программное обеспечение создано с использованием install4j. Когда я устанавливаю его с параметрами -q -varfile (например. example.sh -q -varfile responce.varfile), затем я получаю сообщение об ошибке ниже. Я использую версии install4j 5.1.6 с Java 1.7

Чего мне здесь не хватает?

 Starting Installer ...

In application "Installer", property "Progress interface creation script":
java.lang.StackOverflowError
    at java.lang.System.getProperty(System.java:711)
    at com.install4j.runtime.installer.helper.comm.HelperCommunication.getParentIdentifier(Unknown Source)
    at com.install4j.runtime.installer.helper.comm.HelperCommunication.isElevatedHelper(Unknown Source)
    at com.install4j.runtime.installer.helper.comm.HelperCommunication.helperUnsupported(Unknown Source)
    at com.install4j.runtime.installer.frontend.GUIHelper.invokeOnEDT(Unknown Source)
    at com.install4j.runtime.installer.frontend.headless.UnattendedScreenExecutor.getProgressInterface(Unknown Source)
    at com.install4j.runtime.installer.ContextImpl.getProgressInterface(Unknown Source)
    at I4jScript_Internal_1.eval(I4jScript_Internal_1.java:18)
    at I4jScript_Internal_1.evaluate(I4jScript_Internal_1.java:24)
    at com.install4j.runtime.installer.helper.Script.evaluate(Unknown Source)
    at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
    at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
    at com.install4j.runtime.installer.frontend.headless.UnattendedScreenExecutor$1.run(Unknown Source)
    at com.install4j.runtime.installer.frontend.GUIHelper.invokeOnEDT(Unknown Source)
  

Пожалуйста, найдите следующий скриншот и сценарий —

Разрешить автоматический режим -> Сценарий создания интерфейса выполнения:- (скриншот прилагается ниже.)

введите описание изображения здесь


UnattendedProgressInterface unattend =(UnattendedProgressInterface)context.getProgressInterface();
unattend.setVisible(true);
return unattend ;

Комментарии:

1. Вызываете ли вы context.getProgressInterface() в действии с повышенными правами «Запустить скрипт»?

2. Привет, этот код уже написан в установщике -> Разрешить автоматический режим -> unfendedprogressinterface unattend =(unfendedprogressinterface)context.getProgressInterface(); unattend.setVisible(true); возвращает unattend ; Также права доступа предоставляются максимальные. Но он все еще не работает. Приведенный выше код написан на уровне установщика, нужно ли мне писать его для какого-либо конкретного шага / сценария? Чего я не понимаю?

3. Я не понимаю этот комментарий. Можете ли вы добавить скрипт-нарушитель к своему вопросу?

4. Отредактировал вопрос, добавил изображение и код. Проясняет ли это вопрос?

Ответ №1:

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

Если вы хотите отобразить окно с индикатором выполнения во время автоматической установки, перейдите

-q -splash «Заголовок»

в командной строке или установите для свойства «Режим выполнения по умолчанию» значение «Автоматический режим с диалогом выполнения».

Комментарии:

1. Я не могу вас правильно понять. как мы можем установить «Режим выполнения по умолчанию» в «Автоматический режим с диалогом выполнения», не могли бы вы, пожалуйста, дать мне несколько простых шагов или пример, чтобы это помогло мне в полной мере. и с параметром -q -splash «title», каким будет заголовок, это должен быть заголовок экрана ya, только простое сообщение.

2. Перейдите к шагу Установщик-> Экраны и действия, выберите установщик, затем найдите свойство «Режим выполнения по умолчанию» в списке свойств с правой стороны. «заголовок» — это то, что вы хотите в качестве заголовка окна выполнения.

3. я настроил вышеуказанные параметры, но по-прежнему получаю ту же ошибку. ниже приведен пример запуска командной строки установщика с использованием опции -splash. Например. bash example.sh -q -splash «Title» -varfile response.varfile

4. Вы должны удалить скрипт, который вызывает эту ошибку.

5. Наш установщик по умолчанию запускается в режиме графического интерфейса. Мы также хотим поддерживать режим консоли, предоставляя опцию -q и предоставляя файл var. Что для этого нужно сделать? Должны ли мы прикрепить скрипт в разделе «Разрешить автоматический режим»? Если да, то каким он должен быть?