Jarファイルのパスを取得する
適当なClassとClass.getResource()を使って調べる。
ClassLoader.getResource()では取得できなかった。
import java.util.*; import java.lang.*; import java.io.File; class Main { public static void main (String[] args) throws java.lang.Exception { final String classFileName = "/" + Main.class.getName().replaceAll("\\.", "/") + ".class"; System.out.println("classFileName: " + classFileName); final String classFilePath = Main.class.getResource(classFileName).getPath(); System.out.println("classFilePath: " + classFilePath); final File jarFilePath = new File(classFilePath.replaceFirst("!/.*$", "")); System.out.println("jarFilePath: " + jarFilePath); final String jarFileName = jarFilePath.getName().replaceFirst("\\..+$", ""); System.out.println("jarFileName: " + jarFileName); } }
参考