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

相关推荐
w_zero_one15 小时前
Java的Vert.x框架结合Thymeleaf(TH)模板语言
java·开发语言·idea
咸鱼2.015 小时前
【java入门到放弃】网络
java·开发语言·网络
Roye_ack15 小时前
【微服务 Day2】SpringCloud实战开发(微服务拆分步骤 + Nacos注册中心 + OpenFeign + 微服务拆分作业)
java·spring cloud·微服务·nacos·openfeign
wniuniu_15 小时前
blob是啥
java·服务器·网络
.生产的驴15 小时前
DockerCompoe 部署注册中心Nacos 一键部署 单机+Mysql8
java·linux·运维·spring boot·缓存·docker·doc
hgz071016 小时前
MyBatis插件(拦截器)
java·tomcat
Sunsets_Red16 小时前
待修改莫队与普通莫队优化
java·c++·python·学习·算法·数学建模·c#
葡萄城技术团队16 小时前
在 Java 中优化 MySQL 查询以提升性能
java·开发语言·mysql
杀死那个蝈坦16 小时前
短链接生成-基于布隆过滤器和唯一索引
java·数据库·微服务·oracle·rocketmq
慕白Lee16 小时前
Java foreach在lambda的foreach遍历中退出操作(lambda foreach break)
java