code: private static File whoAmI() throws IOException {
  		// JNLP returns the URL where the jar was originally placed (like http://...)
  		// not the local cached file. So we need a rather round about approach to get to
  		// the local file name.
  		// There is no portable way to find where the locally cached copy
  		// of war/jar is; JDK 6 is too smart. (See JENKINS-2326.)
  		try {
  			return whoAmIFromJnlp();
  		} catch (final Exception x) {
  			getSystemErrorStream().println(
  					"INFO: ZipFile.name trick did not work (" + x.toString() + "), using fallback");
  		}
  		final File myself = File.createTempFile("javamelody", ".jar");
  		myself.deleteOnExit();
  		final InputStream is = Main.class.getProtectionDomain().getCodeSource().getLocation()
  				.openStream();
  		try {
  			final OutputStream os = new FileOutputStream(myself);
  			try {
  				copyStream(is, os);
  			} finally {
  				os.close();
  			}
  		} finally {
  			is.close();
  		}
  		return myself;
  	}
docs: Figures out the location of <tt>javamelody.war</tt>.