/*****************************************/
/* getResourceを使ったバージョン */
/*****************************************/
import java.io.*;
import java.net.URL;
public class test
{
// 例外処理は、全くいい加減です(T_T)
public static void main(String[] args) throws Exception
{
// クラスローダの取得。
ClassLoader cl = ClassLoader.getSystemClassLoader();
// プログラム第一引数に指定された名前のファイルを、クラスパスより探す。
URL url = cl.getResource(args[0]);
// ファイルが見つからなかった場合は、urlはnullになる。
if(url == null)
{
throw new FileNotFoundException(args[0] + "は見つかりません。");
}
// ファイルが見つかった場合は、表示してみる。
File file = new File(url.getFile());
BufferedReader reader = new BufferedReader(new FileReader(file));
String buf;
while((buf = reader.readLine()) != null)
{
System.out.println(buf);
}
// 後始末
reader.close();
}
}
/*****************************************/
/* getResourceAsStreamを使ったバージョン */
/*****************************************/
import java.io.*;
import java.net.URL;
public class test2
{
// 例外処理は、やっぱりいい加減です(T_T)
public static void main(String[] args) throws Exception
{
// クラスローダの取得。
ClassLoader cl = ClassLoader.getSystemClassLoader();
// プログラム第一引数に指定された名前のファイルを、クラスパスより探す。
InputStream iStream = cl.getResourceAsStream(args[0]);
// ファイルが見つからなかった場合は、iStreamはnullになる。
if(iStream == null)
{
throw new FileNotFoundException(args[0] + "は見つかりません。");
}
// ファイルが見つかった場合は、表示してみる。
BufferedReader reader = new BufferedReader(new InputStreamReader(iStream));
String buf;
while((buf = reader.readLine()) != null)
{
System.out.println(buf);
}
// 後始末
reader.close();
}
}
Source is here. (ZIP Format, 1240Byte, Shift-JIS)
ex) java -classpath .;C:\windows\temp test license.txt
Jarファイルに入れる必要が無い分、手軽に使えると思います。
ただ、クラスパス中に同一ファイル名でファイルが存在した場合は、
ちょっとハマりそうかも。