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

相关推荐
q***965814 小时前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
h***066514 小时前
【JSqlParser】Java使用JSqlParser解析SQL语句总结
java·开发语言·sql
代码or搬砖14 小时前
Java Lambda 表达式全面详解
java·开发语言·python
okseekw14 小时前
Java初学者的static探险记:原来“静态”是这么个省心玩意儿!
java
这周也會开心14 小时前
JDK1.8新增语法
java·开发语言
心随雨下14 小时前
TypeScript泛型开发常见错误解析
java·开发语言·typescript
DonaldCen66614 小时前
Java 王者修炼手册【Mysql篇 - SQL执行存储流程】:拆解 InnoDB 存储结构与 SQL 执行流程,吃透 Buffer Pool 和 Change
java
旺仔Sec14 小时前
2025年广东省职业院校技能大赛高职组“区块链技术应用”竞赛试题(二)
java·区块链
Boop_wu15 小时前
[Java EE] 多线程编程进阶
java·数据库·java-ee
w***375115 小时前
SpringBoot【实用篇】- 测试
java·spring boot·后端