如何获取当前 JAR 包的存放位置?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

代码中如何获取打包后的jar包存放的位置?

要获取当前运行的 JAR 包所存放的位置,可以使用 ProtectionDomain 和 CodeSource 类。

代码:

java 复制代码
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;

public class Main {
    public static void main(String[] args) {
        // 获取当前类的保护域
        ProtectionDomain protectionDomain = Main.class.getProtectionDomain();

        // 获取代码源
        CodeSource codeSource = protectionDomain.getCodeSource();

        // 获取代码源的位置
        URL location = codeSource.getLocation();

        // 获取 JAR 包的路径
        String jarPath = location.getPath();
        System.out.println("JAR Path: " + jarPath);
    }
}

注意:这种方法适用于独立的可执行 JAR 包。如果你的代码是作为依赖项运行在其他项目或容器中,可能会得到不同的结果。在这种情况下,获取 JAR 包位置的方法可能会有所不同。

相关推荐
全干engineer17 分钟前
idea拉取github代码 -TLS connect error 异常问题
java·github·intellij-idea
10岁的博客28 分钟前
二维差分算法高效解靶场问题
java·服务器·算法
百***935033 分钟前
Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)
java·tomcat
qq_2813174743 分钟前
kubernetes(k8s)-pod生命周期
java·容器·kubernetes
IT界的奇葩1 小时前
代码规范 spring-javaformat使用
java·spring·代码规范
披着羊皮不是狼1 小时前
多用户跨学科交流系统(4)参数校验+分页搜索全流程的实现
java·spring boot
小池先生2 小时前
Gradle vs Maven 详细对比
java·maven
q***23922 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
q***78782 小时前
Spring Boot的项目结构
java·spring boot·后端
q***96582 小时前
Spring Data JDBC 详解
java·数据库·spring