October 22, 2005

Eclipseでjarファイルを作り,アプリケーションとして動作させる

jarファイルとは

JAR ファイルは普及している ZIP ファイル形式に基づくファイル形式で、多数のファイルを 1 つにまとめるために使用されます。JAR ファイルは、基本的にはオプションの META-INF ディレクトリを格納する ZIP ファイルです。JAR ファイルは、コマンド行 jar ツールを使うか、Java プラットフォームで java.util.jar API を使って作成できます。JAR ファイルの名前には制約がないため、各プラットフォームで許可されているファイル名を使うことができます。

多くの場合、JAR ファイルは、単純な Java のクラスファイルまたはリソースのアーカイブではありません。JAR ファイルは、アプリケーションおよび拡張機能の構築ブロックとして使います。META-INF ディレクトリが存在する場合は、セキュリティ、バージョン管理、拡張機能、サービスなど、パッケージおよび拡張機能の構成データを格納するときに使います。
ref. http://java.sun.com/j2se/1.3/ja/docs/ja/guide/jar/jar.html


アプリケーションをexeファイルのような形でまとめてくれるものと理解した.シミュレーションの設定用GUIのプログラムを作成して,jarファイルでまとめれば,GUIをつかって設定ができて1つのファイルのみでシミュレーションができ,開発環境やコマンドプロンプトからの起動をしなくてもよくなるだろう.

Manifestファイルが必要

jarファイルとしてまとめるためには,Manifestファイルが必要となる. 通例では,バージョン情報,メインクラス(必須),作者を書くようだ.
Manifest-Version: 1.0
Created-By: 1.5.0_01 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass
ref. http://java.sun.com/docs/books/tutorial/jar/manifest/appman.html

コマンドプロンプトからのjarファイルの作成

コマンドプロンプトからjarファイルを作成するには,Java 2 SDKのjarコマンドを利用する.

jarコマンドの書き方はしたに示す通り.通例 jar cmf myManifestFile myJarFile *.class という形で利用すればいい.

jar [ options ] [manifest] destination input-file [input-files]
ref. http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/win32/jar.html

なおjarコマンドのパラメータは以下を参考にする.

ref. http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/win32/jar.html#Options

Eclipseではどうすればいい?

では,Eclipseではどうするか.上述を理解しなくても,エクスポート機能を利用することで簡単にできる.

[File] - [Export]からJARファイルを選択して[次へ].次の画面では,エクスポートする(jarファイル化したい)クラスファイルを選択する.もしわからなければパッケージごとしてしまってもいい.またjarファイルとしてのエクスポート先を[Select the export destination]から決定する.この際[browse]から出力先と出力jarファイル名を決めて[次へ].次の画面で,[終了]とすればよい.

ref.

Posted by ysk5 at 11:37 PM | Comments (0) | TrackBack

October 10, 2005

行によって要素数が異なる多次元配列を動的に確保する

これも知らなかった.

int b[][]; // 配列bの宣言
b = new int [2][]; // とりあえず2行確保する
b[0] = new int [5]; // 行0は5列確保する
b[1] = new int [3]; // 行1には3列確保する

これっておそらく多次元(3次元overな)配列にも適用可能っぽいな.
なんかメドが立ってきたな.

ref. ダイテル本(ISBN:4894710994) pp.234

Posted by ysk5 at 10:31 PM | Comments (0) | TrackBack

配列の宣言とメモリ領域の確保

int c[]; // 配列の宣言
c = new int [10]; //配列の割り当て,メモリ領域の確保
ということらしい.

ということは宣言だけとりあえずしておいて,動的に配列要素数を確保することができるのね.
# ここでかなり無駄なメモリ確保をしていたのだな.

数値系の基本データ型の場合は0ですべての要素が自動的に初期化される.
# 知らなかった

ref. ダイテル本(ISBN:4894710994) pp.209

Posted by ysk5 at 10:14 PM | Comments (0) | TrackBack