How to get the path of a running JAR file?

Thiago Chaves picture Thiago Chaves · Nov 26, 2008 · Viewed 509.1k times · Source

My code runs inside a JAR file, say foo.jar, and I need to know, in the code, in which folder the running foo.jar is.

So, if foo.jar is in C:\FOO\, I want to get that path no matter what my current working directory is.

Answer

Zarkonnen picture Zarkonnen · Nov 26, 2008
return new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation()
    .toURI()).getPath();

Replace "MyClass" with the name of your class.

Obviously, this will do odd things if your class was loaded from a non-file location.