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

相关推荐
wszy18099 小时前
外部链接跳转:从 App 打开浏览器的正确姿势
java·javascript·react native·react.js·harmonyos
期待のcode9 小时前
认识Java虚拟机
java·开发语言·jvm
raining_peidx9 小时前
xxljob源码
java·开发语言
肥猪猪爸9 小时前
双重检查锁(DCL)与 volatile 的关键作用
java·开发语言·单例模式
yaoxin5211239 小时前
289. Java Stream API - 从字符串的字符创建 Stream
java·开发语言
浮游本尊9 小时前
Java学习第35天 - 分布式系统深入与大数据处理
java
2301_780669869 小时前
Set集合、HashSet集合的底层原理
java
你曾经是少年10 小时前
Java 关键字
java
海南java第二人10 小时前
SpringBoot启动流程深度解析:从入口到容器就绪的完整机制
java·开发语言
问今域中10 小时前
Spring Boot 请求参数绑定注解
java·spring boot·后端