クラスが含まれる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); }