TITLE:AntのJarタスクで実行可能なJarファイルの作成

AntのJarタスクで実行可能なJarファイルの作成

編集者:Terai Atsuhiro~

作成日:2003-09-25
更新日:2018-10-30 (火) 16:43:34

概要

Antを使って、Windows環境などでダブルクリックすると起動するJarファイルを作成します。

概要

Antを使って、Windows環境などでダブルクリックすると起動するJarファイルを作成します。

サンプルターゲット

サンプルターゲット

<target name="package" depends="compile">
 <echo message="Creating the jar file ${build.dir}/${name}.jar"/>
 <tstamp>
  <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
 </tstamp>
 <jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest}">
  <manifest>
   <attribute name="Main-Class" value="${main.class}"/>
   <attribute name="Class-Path" value="${runtime.classpath}"/>
   <attribute name="Implementation-Title"   value="${Name}"/>
   <attribute name="Implementation-Version" value="${version}"/>
   <attribute name="Implementation-Vendor"  value="${vendor}"/>
   <attribute name="Build-Id"
    value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}])"/>
  </manifest>
 </jar>
  <echo message="Creating the jar file ${build.dir}/${name}.jar"/>
  <tstamp>
    <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
  </tstamp>
  <jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest}">
    <manifest>
      <attribute name="Main-Class" value="${main.class}"/>
      <attribute name="Class-Path" value="${runtime.classpath}"/>
      <attribute name="Implementation-Title"   value="${Name}"/>
      <attribute name="Implementation-Version" value="${version}"/>
      <attribute name="Implementation-Vendor"  value="${vendor}"/>
      <attribute name="Build-Id"
        value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}])"/>
    </manifest>
  </jar>
</target>

解説

Swing以下のsrc.zipなどで、サンプルをダウンロードすることができます。 ${main.class}、${runtime.classpath}などのプロパティは、config 以下にある、build.properties properties.xmlファイルを編集して環境に合わせて修正してください。サンプル中のbuild.xmlでは、コンパイルや実行に必要なjarファイルがあれば、libフォルダ以下に置いておくと自動的にクラスパスに追加されます。
#build.propertiesファイル
#メインクラス(jarファイルのマニフェストに使用)
main.class=example.MainPanel
#クラスパス(jarファイルのマニフェストに使用、区切りは半角スペース)
runtime.classpath=. lib/test.jar hoge.jar

解説

Swing以下の適当なページから、サンプルコード(src.zip)をダウンロードすることができます。 このサンプルでは、src\javaフォルダ以下にShift_JIS(Windows-31J)のソースファイルを置いて使用します。 ${main.class}${runtime.classpath}などのプロパティは、config以下にある、properties.xmlファイルを編集して環境に合わせて修正してください。 以下のように、packageターゲットでantを実行すると、jarファイルが作成されます。
#spanend
#spanadd
<?xml version="1.0" encoding="UTF-8"?>
#spanend
#spanadd
<project>
#spanend
  <property name="main.class"        value="example.MainPanel" />
  <property name="runtime.classpath" value=". jlfgr-1_0.jar lib/test.jar" />
  <!-- 中略 -->
#spanadd
</project>
#spanend
#spanadd
ant package
以下のように、packageターゲットでantを実行すると、jarファイルが作成されます。 Antを使わない場合は、以下のようなmanifest.txtを作って、
> ant package
Antを使わない場合は、以下のようなmanifest.txtを作って、
Main-Class: demo
Class-Path: SampleLib.jar
以下のように、jar.exeで作成します。 jar.exeで作成します。
> jar -cvfm hogehoge.jar manifest.txt demo.class
ただ、マニフェスト・ファイルを手で書くと、:の後には半角スペースが必要だったり、最終行末に改行がないとおかしくなるなど、いろいろ面倒があるみたいです。 ただ、マニフェスト・ファイルを手で書くと、名前の後には:と半角スペースが必須だったり、最終行末に改行がないとおかしくなるなど(JAR ファイルの仕様)、細かい制限があるようです。

コメント

参考リンク

コメント