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

相关推荐
RainCityLucky3 分钟前
Java Swing 自定义组件库分享(十一)
java·笔记·后端
ch.ju3 分钟前
Java Programming Chapter 4——The set method assigns a value to the property.
java·开发语言
Sam_Deep_Thinking4 分钟前
SaaS多租户业务差异化:扩展点机制的设计与实现
java·架构
我登哥MVP7 分钟前
Spring Boot 从“会用”到“精通”:Rest风格原理
java·spring boot·后端·spring·maven·intellij-idea·mybatis
love_muming9 分钟前
数据结构入门:栈与队列详解
java·开发语言·数据结构
我登哥MVP10 分钟前
Spring Boot 从“会用”到“精通”:静态资源原理
java·spring boot·后端·spring·tomcat·maven·intellij-idea
奋斗的袍子00711 分钟前
springboot集成国密算法SM2
java·spring boot·算法
JAVA面经实录91711 分钟前
SpringBoot 全套完整版学习文档(零基础+实战+面试+源码)
java·spring boot·spring·架构
jasnet_u12 分钟前
SpringCloud中Feign透传traceId及日志切面配置
java·spring cloud·feign·日志系统
nvd1112 分钟前
从 Spring 到 Quarkus:为什么依赖注入正在从“运行时”退回“编译期”?
java·后端·spring