有没有办法在运行时从这个类的代码确定已执行类的当前文件系统位置,因为它是使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在调用MyClass.class文件的文件系统中获取和打印正确的路径?
同样,如果我从java -jar命令调用jar文件,有没有办法从该jar内的类中获取jar文件的路径?
PS:请不要做任何假设有关工作目录从java被调用的命令!
小智 95
以下代码段将为您执行此操作:
final File f = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
Run Code Online (Sandbox Code Playgroud)
替换MyClass你的main班级
生成的File对象f表示.jar已执行的文件.您可以使用此对象让父级查找所在的目录.jar.
| 归档时间: |
|
| 查看次数: |
60075 次 |
| 最近记录: |