Вызов Java-классов из IzPack - PullRequest
       29

Вызов Java-классов из IzPack

8 голосов
/ 19 марта 2010

Как вы вызываете метод из класса Java из IzPack? Статические методы в порядке, и мне нужно иметь возможность передавать его параметры.

Спасибо!


Справочная информация:

Я пытаюсь написать установщик IzPack, который может обнаружить ранее установленные версии приложения. Узнав, что он не поддерживает эту функцию (кроме Windows), я думаю, что единственный способ сделать это - написать класс Java и вызвать его из IzPack.

Тим Уиллискрофт имеет ранее предложенный этот метод, который считывает значение статического поля класса:

 <condition type="java" id="jbossEnv">
             <java> 
                 <class>au.com.codarra.ela.installer.JBossChecker</class
                 <field>hasJBossEnv</field>
             </java>
             <returnvalue type="boolean">true</returnvalue>
 </condition>

Однако возможно ли вызвать <java> откуда-либо, кроме тега <condition>? Я хочу иметь возможность вызывать его из тега <variable>.
Кроме того, возможно ли вызвать метод из класса Java вместо чтения значения поля? Я хочу иметь возможность передавать параметры своему классу.

Ответы [ 4 ]

3 голосов
/ 15 апреля 2011

Вы можете вызывать статические методы, но я не думаю, что вы можете передавать параметры. Вы могли бы создать новый «Тип условия», но у меня нет опыта с этим, поэтому я не могу подтвердить гибкость, которую он обеспечивает ...

Итак, у меня нет прямого ответа, но есть другое предложение, которое может помочь:

Я склонен передавать любую сложную постобработку отдельным процессам.

Вы исследовали панель обработки? Вы можете запустить любой процесс и передать переменные.

, например

<processing>
  <job name="do xyz">
    <os family="windows" />
    <executefile name="$INSTALL_PATH/scripts/xyz.bat">
      <arg>doit</arg><arg>$variable</arg>
    </executefile>
  </job>
  <job name="do xyz">
    <os family="unix" />
    <executefile name="$INSTALL_PATH/scripts/xyz.sh">
      <arg>doit</arg><arg>$variable</arg>
    </executefile>
  </job>
</processing>

Я использовал его для настройки служб и немедленного запуска. Такого рода вещи. Просто убедитесь, что ваш скрипт завершается корректно, иначе IzPack зависнет.

Смотрите здесь: http://izpack.org/documentation/panels.html#processpanel

0 голосов
/ 15 декабря 2017

Я успешно настроил установщик IzPack, который во время установки выполняет файл «bat» (с одним параметром) для генерации кода запроса лицензии. Сначала я должен был убедиться, что файл bat скопирован в выбранный пользователем $ INSTALL_PATH, а в файле IzPack install.xml я добавил ProcessPanel после InstallPanel (куда копируются все файлы, включая файл «bat»). ). Мой ProcessPanel.Spec.xml выглядит так:

<?xml version="1.0" encoding="UTF-8" ?>
<izpack:processing version="5.0"
xmlns:izpack="http://izpack.org/schema/processing" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://izpack.org/schema/processing 
http://izpack.org/schema/5.0/izpack-processing-5.0.xsd">

<job name="initialize license">
  <executefile name="$INSTALL_PATH/initialize.bat" workingDir="$INSTALL_PATH" onError="fail">
    <arg>license</arg>
  </executefile>
</job>
<onFail previous="false" next="false" />
<onSuccess previous="false" next="true" />
</izpack:processing>
0 голосов
/ 15 марта 2011

Hello В ссылке ниже вы найдете полезную справку об установщике izpack.

http://www.imrantariq.com/blog/?p=89

Ссылка ниже содержит подробный PDF-файл для установки с izpack.

http://www.imrantariq.com/blog/?attachment_id=112

ура

Имран Тарик

0 голосов
/ 14 марта 2011

Рассмотрите возможность использования интеграции IzPack Ant

http://izpack.org/documentation/advanced-features.html#apache-ant-integration

и задача вызова Ant Java

http://ant.apache.org/manual/Tasks/java.html

...