Here you can find the source of getJarLocation(Class classFromJar)
public static String getJarLocation(Class classFromJar)
//package com.java2s; /***** BEGIN LICENSE BLOCK ***** * BSD License (2 clause)/* w w w. j a v a2s .c om*/ * Copyright (c) 2006 - 2012, Stephan Pfab * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL Stephan Pfab BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ***** END LICENSE BLOCK *****/ import java.io.*; import java.net.URISyntaxException; import java.net.URL; public class Main { public static String getJarLocation(Class classFromJar) { return url2File(classFromJar.getProtectionDomain().getCodeSource().getLocation()).getAbsolutePath(); } public static File url2File(URL url) { File file; try { file = new File(url.toURI()); } catch (URISyntaxException e) { file = new File(url.getPath()); } return file; } }