jar ファイルをエクスポートしたときリソースが開けなくなる

以下のようなエラーが出たときの対処法をメモしておきます.

症状

eclipse 上ではファイル読み込みができているのに,jar ファイルへエクスポートしたときファイルへのパスが通ってなくてエラーになる.
例えば,以下のように manualeclipse 上では読み込んで実行できるのに,jar ファイルにすると読み込めなくなる.

BufferedReader br = new BufferedReader(new FileReader("manual"));
対処

まず,eclipse 上でファイル読み込みをしている Java ファイルがある場所に,読み込むファイルを置く.
例えば,Test.java というファイルで manual というファイルを読み込みたいのなら,Test.java があるディレクトリに manual を置く.

そして,以下のようにしてファイルを取得する.

//マニュアルファイルを取得する
URL url = Test.class.getResource("manual");
		
try {
	BufferedReader br = new BufferedReader(
                      new InputStreamReader(url.openStream()));
	String str = null;
	while((str = br.readLine()) != null){
		System.out.println(str);
	}
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}


仮に最初の FileReader を使った方法でファイルを読み込むためには,出力した jar ファイルがあるディレクトリに manual というファイルが存在している必要がある.