有没有办法在运行时从执行java
命令的类的代码中确定当前执行类的文件系统位置?
例如,对于以下类:
public class MyClass{
public static void main(String[] args){\
new MyClass().doStuff();
}
private void doStufF(){
String path = ... // what to do here?!
System.out.println("Path of class being invoked: " + path);
}
}
有没有办法获取和打印MyClass.class文件在文件系统中被调用的正确路径? 同样地,如果我从java -jar命令调用jar文件,有没有办法从该jar内部的类中获取jar文件的路径? P.S .:请不要假设从哪个工作目录调用了java命令!
File(java.net.URI)
构造函数似乎可以解决这个问题。 - Spookyfinal File f = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getURI().getPath());
- Andreas Covidiot