8

IzPack から Java クラスのメソッドを呼び出すにはどうすればよいですか? 静的メソッドは問題ありません。パラメーターを渡すことができる必要があります。

ありがとうございました!


背景情報:

以前にインストールされたバージョンのアプリケーションを検出できる IzPack インストーラーを作成しようとしています。この機能が実際にはサポートされていないことがわかった後 (Windows を除く)、これを行う唯一の方法は、Java クラスを作成して IzPack から呼び出すことだと思います。

Tim Williscroft は以前、クラスの静的フィールドの値を読み取るこのメソッドを提案しました。

 <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>から呼び出せるようにしたいです。 また、フィールドの値を読み取る代わりに、Java クラスからメソッドを呼び出すことは可能ですか? クラスにパラメーターを渡すことができるようにしたい。<variable>

4

4 に答える 4

3

静的メソッドを呼び出すことはできますが、パラメーターを渡すことはできないと思います。新しい「条件タイプ」を作成することもできますが、私はこれを経験していないため、それが提供する柔軟性を確認できません...

したがって、直接の回答はありませんが、役立つかもしれない別の提案:

私は、複雑な後処理を別のプロセスに渡す傾向があります。

処理パネルを調査しましたか? 任意のプロセスを開始し、変数を渡すことができます..

例えば

<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

于 2011-04-14T22:46:59.630 に答える
0

こんにちは以下のリンクで、izpackインストーラーに関する素晴らしいヘルプを見つけることができます。

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

以下のリンクには、izpackを使用してインストーラーを作成するための詳細なPDFが含まれています。

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

乾杯

イムラン・ターリク

于 2011-03-15T13:12:29.210 に答える
0

IzPack Ant 統合の使用を検討する

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

および Ant Java コールアウト タスク

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

于 2011-03-14T14:00:36.297 に答える