如何获取当前 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 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
AC赳赳老秦8 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵8 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
流星白龙9 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
AI人工智能+电脑小能手9 小时前
【大白话说Java面试题 第207题】【09_Zookeeper篇】第8题:谈谈 ZooKeeper 的可靠性保障机制
java·zookeeper·高可用·可靠性·分布式系统
harmful_sheep9 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven
Mark_ZP10 小时前
【锁2】锁的分类与概念
java·
caishenzhibiao10 小时前
顺势捕猎者副图 同花顺期货通指标
java·c语言·c#
笨蛋不要掉眼泪10 小时前
RabbitMQ消息队列:SpringAMQP
java·分布式·rabbitmq
Mark_ZP11 小时前
【锁6】AQS (AbstractQueuedSynchronizer) 核心原理详解
java