クラスが含まれるJARファイルのURLを取得
【PR】当サイトはプロモーションが含まれています。
1)Class から #getResource にてリソースURLを取得。
2)JAR であれば JarURLConnection に変換し、#getJarFileURL にてJARファイルのURLを取得。
/**
* 指定されたクラスのリソースURLを取得します。
*
* @param clazz クラス
* @return URL
*/
public static URL getResourceUrl(Class clazz) throws Exception {
URL resourceUrl = clazz.getResource(BcLangUtil.toClassFileName(clazz));
return resourceUrl;
}
/**
* 指定されたURLのJARファイルのURLを取得します。
*
* @param url URL
* @return JARの場合はそのURL。JARでない場合は null
*/
public static URL getJarFileUrl(URL url) throws Exception {
URLConnection urlConnection = url.openConnection();
URL jarFileUrl = null;
if (urlConnection instanceof JarURLConnection) {
JarURLConnection jarURLConnection = (JarURLConnection)urlConnection;
jarFileUrl = jarURLConnection.getJarFileURL();
}
return jarFileUrl;
}
/**
* 指定されたクラスが含まれるJARファイルのURLを取得します。
*
* @param clazz クラス
* @return JARの場合はそのURL。JARでない場合は null
*/
public static URL getJarFileUrl(Class clazz) throws Exception {
URL jarUrl = getResourceUrl(clazz);
if (jarUrl == null) {
return null;
}
return getJarFileUrl(jarUrl);
}




