Ant/JarPackage のバックアップの現在との差分(No.1)
TITLE:AntのJarタスクで実行可能なJarファイルの作成
AntのJarタスクで実行可能なJarファイルの作成
編集者:Terai Atsuhiro~
作成日:
更新日:2018-10-30 (火) 16:43:34
- title: AntのJarタスクで実行可能なJarファイルの作成 author: aterai pubdate: 2003-09-25 description: Antを使って、Windows環境などでダブルクリックすると起動するJarファイルを作成します。
概要
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>
#spanadd
解説
${main.class}、${runtime.classpath}などのプロパティは、build.propertiesファイルを編集して環境に合わせて修正してください。#build.propertiesファイル #メインクラス(jarファイルのマニフェストに使用) main.class=example.MainPanel #クラスパス(jarファイルのマニフェストに使用) runtime.classpath=. lib/test.jar
解説
Swing以下の適当なページから、サンプルコード(src.zip
)をダウンロードすることができます。
このサンプルでは、src\javaフォルダ以下にShift_JIS(Windows-31J
)のソースファイルを置いて使用します。
${main.class}
、${runtime.classpath}
などのプロパティは、config
以下にある、properties.xml
ファイルを編集して環境に合わせて修正してください。
コンパイルに必要なjarファイルがあれば、libフォルダ以下に置いておくと自動的にクラスパスに追加されます。
#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
以下のように、packageターゲットでantを実行すると、jarファイルが作成されます。
以下のように、package
ターゲットでant
を実行すると、jar
ファイルが作成されます。
ant package > ant packageAntを使わない場合は、以下のようなmanifest.txtを作って、
Ant
を使わない場合は、以下のようなmanifest.txt
を作って、
Main-Class: demo Class-Path: SampleLib.jar以下のように、jar.exeで作成します。
> jar cvfm hogehoge.jar manifest.txt demo.class
jar.exe
で作成します。
ただ、マニフェスト・ファイルを手で書くと、:の後には半角スペースが必要だったり、最終行末に改行がないとおかしくなるなど、いろいろ面倒があるみたいです。
> jar -cvfm hogehoge.jar manifest.txt demo.class
コメント
ただ、マニフェスト・ファイルを手で書くと、名前の後には:
と半角スペースが必須だったり、最終行末に改行がないとおかしくなるなど(JAR ファイルの仕様)、細かい制限があるようです。