Search code examples
javapathjarexecutable-jar

How to get the path of a running JAR file?


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.


Solution

  • 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.