睡眠不足?! RSSフィード

2324773

2007-08-11

[]javaライブラリの作成と利用

そういえば,今までライブラリという形できちんと管理していなかったため,ここらへんの基礎知識が皆無

今さらかなり恥ずかしいが,忘れないようにメモ


ライブラリクラスの作成

適当な場所にライブラリを作成する.package文を忘れずに

(./mytools/hoge/Hoge.java

package mytools.hoge;

public class Hoge{
	public void printHoge(){
		System.out.println("Hoge!");
	}
}

利用するjavaファイルの作成

このクラスを利用するためには,以下のようなimport文を挿入すればよい.

(./HogeDemo.java

import mytools.hoge.Hoge;

class HogeDemo{
	public static void main(String args[]){
		Hoge hoge = new Hoge();
		hoge.printHoge();
	}
}

この際,上記のようにjava/javac実行パスからの相対パスが./mytools/hoge/Hoge.classでないとNoClassDefFoundErrorが返ってくる.

classpath環境変数にパスを追加してもよいけれど,いちいち再設定するのが面倒くさい場合,コマンドラインオプションで指定することができる.

% javac -classpath <省略>/mytools/hoge;. HogeDemo.java

クラスパスはセミコロンで区切って複数指定することができる.ここで./を指定しているが,.は通常使用するので環境変数に設定したほうがよろし.

こんな感じで,自分でつくったライブラリを利用できるようになりました.


jarファイルの作成と利用

さぁ,jarライブラリを作成しよう,ということでjarコマンドで作成.

基本的なオプションtarといっしょ.zオプションがないくらいが違い.

% jar vcf myjar.jar mytools

上記コマンドの意味は,mytoolsディレクトリ以下のライブラリを圧縮して,myjar.jarという名前でひとつにしてしまえ,ということ.


なぜかjarファイルをclasspathで指定すると,javacする際にコンパイル対象のファイルの位置(たいてい.)も同時に指定しなければならない.


% javac -classpath ./myjar.jar;. HogeDemo.java
% java -classpath ./myjar.jar;. HogeDemo

これは,ディレクトリ構造のライブラリの場合には起こらない(Windowsコマンドプロンプト使用時)

理由が理解できていないので,後日分析予定.

次回はJavadocの作成方法とアノテーション方法についてメモする予定,と無理やり引きをつくってみる

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/sleepy_yoshi/20070811/p1