gpt4 book ai didi

java - 获取正在执行的类的文件系统路径

转载 作者:IT老高 更新时间:2023-10-28 20:22:47 26 4
gpt4 key购买 nike

如果使用 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 命令的工作目录做出任何假设!

最佳答案

以下代码片段将为您完成此操作:

final File f = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());

MyClass 替换为您的 main

生成的 File 对象 f 表示已执行的 .jar 文件。你可以使用这个对象让父级找到.jar所在的目录。

关于java - 获取正在执行的类的文件系统路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11747833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com