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

相关推荐
0x534 分钟前
网站通信(一)
java
Terra.K12 分钟前
Java异常学习[特殊字符]
java·开发语言·学习
葡萄城技术团队2 小时前
InfluxDB 2\.x 深度解析:核心架构、Flux 函数与制造业落地指南(三)
java·开发语言·架构
Super 含2 小时前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
counting money2 小时前
Java IO流详解:从InputStream到文件操作实战
java·开发语言·python
程序员小八7773 小时前
上海百度B端java后端日常实习一面
java·开发语言
mldong4 小时前
零依赖的秘密:8 大 SPI 设计
java·架构
Diligently_6 小时前
Anolis 系统更新与密码设置&磁盘扩容
java·后端·spring
mqiqe6 小时前
线程调度与 Schedulers:Project Reactor 并发模型的核心引擎
java·开发语言·网络