javaアプリの実行時のファイルロードで、ファイルパスを相対パスで指定したい時、ウェブアプリや環境(OS)等によってどこにクラスパスが通っているのかが解らなくなる時がある。そんな時に実行時プログラムでjavaのクラスパスを取得したい時は下の通り。
String classpath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("classpath : " + classpath);
ただこれだと実行時のカレントディレクトリのみ。jarファイルがあるクラスパスもすべて見たい場合は下の通り。
System.out.println("classpath : " + System.getProperty("java.class.path"));
■参考
・クラスパス(wiki)
⇒コマンドラインからクラスパスを指定してコンパイルとか
String classpath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("classpath : " + classpath);
ただこれだと実行時のカレントディレクトリのみ。jarファイルがあるクラスパスもすべて見たい場合は下の通り。
System.out.println("classpath : " + System.getProperty("java.class.path"));
■参考
・クラスパス(wiki)
⇒コマンドラインからクラスパスを指定してコンパイルとか