Ant/JarPackage のバックアップ差分(No.13)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Ant/JarPackage へ行く。
- 1 (2007-06-28 (木) 14:30:08)
- 2 (2007-07-12 (木) 14:52:10)
- 3 (2007-08-03 (金) 13:44:27)
- 4 (2007-09-21 (金) 19:09:00)
- 5 (2007-09-23 (日) 00:36:14)
- 6 (2007-09-23 (日) 15:58:48)
- 7 (2007-10-26 (金) 18:58:26)
- 8 (2007-12-19 (水) 18:53:23)
- 9 (2008-02-13 (水) 18:52:30)
- 10 (2011-01-14 (金) 17:13:20)
- 11 (2011-06-02 (木) 14:26:37)
- 12 (2013-10-30 (水) 21:41:26)
- 13 (2014-03-24 (月) 18:59:35)
- 14 (2014-06-04 (水) 22:19:15)
- 15 (2014-09-02 (火) 16:12:00)
- 16 (2014-09-24 (水) 18:16:57)
- 17 (2014-11-08 (土) 01:15:50)
- 18 (2014-11-08 (土) 01:41:12)
- 19 (2015-09-29 (火) 19:59:40)
- 20 (2017-10-27 (金) 16:26:13)
- 21 (2018-02-27 (火) 14:31:28)
- 22 (2018-10-30 (火) 16:43:34)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:AntのJarタスクで実行可能なJarファイルの作成 #navi(../) *AntのJarタスクで実行可能なJarファイルの作成 [#e68e625a] #adsense2 >編集者:[[Terai Atsuhiro>aterai]]~ 作成日:2003-09-25~ 更新日:&lastmod; #contents(none) **概要 [#q989a75a] Antを使って、Windows環境などでダブルクリックすると起動するJarファイルを作成します。 `Ant`を使って、`Windows`環境などでダブルクリックすると起動する`Jar`ファイルを作成します。 **サンプルターゲット [#f0c358aa] #code{{ <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> </target> }} -[[JToolBarでアイコンボタンを右寄せ>Swing/ToolBarLayout]] --http://terai.xrea.jp/swing/toolbarlayout/src.zip - [[JToolBarでアイコンボタンを右寄せ>Swing/ToolBarLayout]] -- http://terai.xrea.jp/swing/toolbarlayout/src.zip **解説 [#n5babbd3] [[Swing]]以下のsrc.zipなどで、サンプルをダウンロードすることができます。 [[Swing]]以下の`src.zip`などで、サンプルをダウンロードすることができます。 ${main.class}、${runtime.classpath}などのプロパティは、config 以下にある、%%''build.properties''%% ''properties.xml''ファイルを編集して環境に合わせて修正してください。 `${main.class}`、`${runtime.classpath}`などのプロパティは、`config`以下にある、`properties.xml`ファイルを編集して環境に合わせて修正してください。 #code{{ <?xml version="1.0" encoding="UTF-8"?> <project> <property name="main.class" value="example.MainPanel" /> <property name="runtime.classpath" value=". jlfgr-1_0.jar lib/test.jar" /> <!-- 中略 --> </project> }} // #build.propertiesファイル // #メインクラス(jarファイルのマニフェストに使用) // main.class=example.MainPanel // #クラスパス(jarファイルのマニフェストに使用、区切りは半角スペース) // runtime.classpath=. lib/test.jar hoge.jar %%このサンプルでは、src\javaフォルダ以下にShift_JIS(Windows-31J)のソースファイルを置いて使用します。%% 以下のように、`package`ターゲットで`ant`を実行すると、`jar`ファイルが作成されます。 以下のように、packageターゲットでantを実行すると、jarファイルが作成されます。 > ant package ant package `Ant`を使わない場合は、以下のような`manifest.txt`を作って、 Antを使わない場合は、以下のようなmanifest.txtを作って、 Main-Class: demo Class-Path: SampleLib.jar 以下のように、jar.exeで作成します。 `jar.exe`で作成します。 > jar -cvfm hogehoge.jar manifest.txt demo.class ただ、マニフェスト・ファイルを手で書くと、:の後には半角スペースが必要だったり、最終行末に改行がないとおかしくなるなど([http://docs.oracle.com/javase/jp/6/technotes/guides/jar/jar.html JAR ファイルの仕様])、いろいろ面倒があるみたいです。 ただ、マニフェスト・ファイルを手で書くと、`:`の後には半角スペースが必要だったり、最終行末に改行がないとおかしくなるなど([http://docs.oracle.com/javase/jp/6/technotes/guides/jar/jar.html JAR ファイルの仕様])、いろいろ面倒があるみたいです。 //*参考リンク **コメント [#fa161f0a] - 参照するjarファイルが多い場合は、pathconvertタスクを使ってマニュフェストのクラスパスを自動生成するのが楽です -- &new{2007-09-23 (日) 00:36:14}; -- たしかに数が多いと大変そうですね。上記のpackageターゲットを修正して、pathconvertタスクを使うサンプルを以下においてみました((もうすこし整理できそう?))。 -- [[aterai]] &new{2007-09-23 (日) 15:58:48}; - 参照する`jar`ファイルが多い場合は、`pathconvert`タスクを使ってマニュフェストのクラスパスを自動生成するのが楽です -- &new{2007-09-23 (日) 00:36:14}; -- たしかに数が多いと大変そうですね。上記の`package`ターゲットを修正して、`pathconvert`タスクを使うサンプルを以下においてみました((もうすこし整理できそう?))。 -- [[aterai]] &new{2007-09-23 (日) 15:58:48}; #code{{ <pathconvert pathsep=" " dirsep="/" property="jar.runtime.classpath"> <path> <pathelement location="${build.dir}" /> </path> <map from="${build.dir}" to="."/> </pathconvert> <target name="jarpath" if="have.library"> <path id="jar.path"> <pathelement location="${build.dir}" /> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> </path> <!-- lib.dirは相対パスで指定しているので、これを絶対パスに変換 --> <!-- これは、あとでmapを使ってjar.pathから絶対パスを削るため --> <pathconvert property="lib.path"> <path path="${lib.dir}" /> </pathconvert> <echo message="-------------------------- ${lib.path}" /> <pathconvert pathsep=" " dirsep="/" property="jar.runtime.classpath" refid="jar.path"> <map from="${lib.path}" to="."/> <map from="${build.dir}" to="."/> </pathconvert> <echo message="-------------------------- ${jar.runtime.classpath}" /> </target> <target name="package" depends="compile, jarpath"> <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="${jar.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> }} #comment