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

相关推荐
北执南念8 分钟前
JDK 动态代理和 Cglib 代理的区别?
java·开发语言
盛夏绽放20 分钟前
Python 目录操作详解
java·服务器·python
贰拾wan21 分钟前
ArrayList源码分析
java·数据结构
Code季风22 分钟前
跨语言RPC:使用Java客户端调用Go服务端的JSON-RPC服务
java·网络协议·rpc·golang·json
豆沙沙包?1 小时前
2025年- H82-Lc190--322.零钱兑换(动态规划)--Java版
java·算法·动态规划
都叫我大帅哥1 小时前
背压(Backpressure):响应式编程的“流量控制艺术”
java·flux
浮游本尊1 小时前
Java学习第5天 - 输入输出与字符串处理
java
阿杰学编程1 小时前
Go 语言中的条件判断和for 循环
java·数据库·golang
考虑考虑2 小时前
JDK9中的takeWhile
java·后端·java ee