Java

java怎么获取jar包所在的目录

小亿
257
2023-09-20 18:00:34
栏目: 编程语言

在Java中,可以使用ProtectionDomain类来获取Jar包所在的目录。

以下是一个示例代码:

import java.security.CodeSource;
import java.security.ProtectionDomain;
public class JarPathExample {
public static void main(String[] args) {
ProtectionDomain protectionDomain = JarPathExample.class.getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
String jarPath = codeSource.getLocation().getPath();
System.out.println("Jar所在目录:" + jarPath);
}
}

这段代码首先通过getProtectionDomain()方法获取当前类的保护域(ProtectionDomain)。然后,通过getCodeSource()方法获取Jar包的源码(CodeSource)。最后,通过getLocation()方法获取Jar包所在的位置,并使用getPath()方法获取Jar包所在目录的路径。

请注意,此代码仅适用于已打包为Jar文件的应用程序。如果您的应用程序正在运行时,可以使用Class类的getResource()方法来获取类路径下的资源文件的路径。例如:

String jarPath = JarPathExample.class.getResource("/your_resource_file").getPath();

其中your_resource_file是资源文件的路径。

请注意,获取Jar包所在目录的代码只能在已打包为Jar文件的环境中使用。如果您在IDE中运行代码,将无法获取到Jar包的路径。

0
看了该问题的人还看了