Determine if running from JARTag(s): Environment
package com.rgagnon;
public class HelloClass {
public static void main(String[] args) {
new HelloClass().say();
}
public void say() {
String className = this.getClass().getName().replace('.', '/');
String classJar =
this.getClass().getResource("/" + className + ".class").toString();
if (classJar.startsWith("jar:")) {
System.out.println("*** running from jar!");
}
System.out.println(classJar);
}
}
>jar cvfm Hello.jar manifest.mft com\rgagnon\HelloClass.class added manifest adding: com/rgagnon/HelloClass.class (in=1059) (out=601) (deflated 43%) >java com.rgagnon.HelloClass file:/C:/DEV/WORK/JAVA/com/rgagnon/HelloClass.class >java -jar Hello.jar *** running from jar! jar:file:/C:/DEV/WORK/JAVA/Hello.jar!/com/rgagnon/HelloClass.class
package com.rgagnon.howto;
public class RunningJar {
public static void main(String[] args) {
String runningJarName = new RunningJar().getRunningJarName();
if (runningJarName != null) {
System.out.println("Running from " + runningJarName);
}
else {
System.out.println("Not running from a jar");
}
}
public String getRunningJarName() {
String className = this.getClass().getName().replace('.', '/');
String classJar =
this.getClass().getResource("/" + className + ".class").toString();
if (classJar.startsWith("jar:")) {
String vals[] = classJar.split("/");
for (String val: vals) {
if (val.contains("!")) {
return val.substring(0, val.length() - 1);
}
}
}
return null;
}
}
/*
output :
>java -jar yop.jar
Running from yop.jar
>ren yop.jar yip.jar
>java -jar yip.jar
Running from yip.jar
*/
See these related HowTo's : Obtain from where a Class is loaded Get the "root" of an application
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com