如何获取当前 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 包位置的方法可能会有所不同。

相关推荐
diudiu_337 分钟前
web漏洞--认证缺陷
java·前端·网络
heartbeat..20 分钟前
注解 + 反射:Web 项目 Excel 一键导出工具 EnhancedExportExcelUtil 详解
java·excel·poi
lkbhua莱克瓦2423 分钟前
IO流练习(加密和解密文件)
java·开发语言·笔记·学习方法·io流·io流练习题
嘟嘟w1 小时前
Servlet的生命周期
java
张较瘦_1 小时前
SpringBoot3 | SpringBoot中Entity、DTO、VO的通俗理解与实战
java·spring boot·后端
may_一一1 小时前
docker安装的redis状态一直是restarting
java·redis·docker
zhangyifang_0091 小时前
Spring中的SPI机制
java·spring
han_hanker2 小时前
这里使用 extends HashMap<String, Object> 和 类本身定义变量的优缺点
java·开发语言
careathers2 小时前
【JavaSE语法】面向对象初步认识
java·面向对象
coding随想2 小时前
掌控选区的终极武器:getSelection API的深度解析与实战应用
java·前端·javascript