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

相关推荐
xxjj998a9 小时前
【Spring】Spring MVC案例
java·spring·mvc
阿巴斯甜9 小时前
Android:MagicIndicator的使用
java
Nyarlathotep01139 小时前
并发集合类(1):CopyOnWriteArrayList
java·后端
千寻girling9 小时前
被内推的面试 , 第一次
java·前端·python·面试·职场和发展·typescript·node.js
星辰_mya10 小时前
PV之系统与并发的核心wu器
java·开发语言·后端·学习·面试·架构师
va学弟10 小时前
Agent入门开发
java·运维·服务器·ai
做时间的朋友。10 小时前
Java虚拟线程详解:从原理到实战,解锁百万并发新姿势
java·开发语言
一只大袋鼠10 小时前
MyBatis 从入门到实战(二):代理 Dao 开发与多表关联查询
java·开发语言·数据库·mysql·mybatis
周末也要写八哥10 小时前
C++实际开发之泛型编程(模版编程)
java·开发语言·c++
好家伙VCC10 小时前
**发散创新:用 Rust实现游戏日引擎核心模块——从事件驱动到多线程调度的实战
java·开发语言·python·游戏·rust