SpringBoot项目中jar发布获取jar包所在目录路径的最佳方法

如何获取SpringBoot项目中jar包所在目录路径是一个常见的问题。下面是一些方法:

方法一:使用SpringBoot的内置类

在SpringBoot中,可以使用SpringApplication类的静态方法来获取jar包所在的目录路径。可以在SpringBoot启动类中调用该方法:

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
        String jarPath = new File(MyApplication.class.getProtectionDomain()
        .getCodeSource()
        .getLocation()
        .getPath())
        .getParentFile().getPath();
        System.out.println(jarPath);
    }

}

在上述代码中,首先通过MyApplication.class.getProtectionDomain().getCodeSource().getLocation().getPath()方法获取到jar包的路径,然后通过getParentFile()方法获取jar包所在的目录路径。

方法二:使用System.getProperty()方法

还可以使用System.getProperty()方法来获取jar包所在的目录路径。

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
        String jarPath = System.getProperty("user.dir");
        System.out.println(jarPath);
    }

}

在上述代码中,System.getProperty("user.dir")方法会返回当前工作目录的绝对路径,也就是jar包所在的目录路径。

下面是具体演示:

例如我将工程打包成jar包,且放在/d/Java_Project文件夹下

那么方法一中打印的内容就是:/d/Java_Project

方法二中打印的内容也是相同的:/d/Java_Project

综上,以上两种方法都可以在SpringBoot项目中获取jar包所在的目录路径,根据需要选择适合的方法即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目中jar发布获取jar包所在目录路径的最佳方法 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • java生成uuid

    Java 生成 UUID UUID(Universally Unique Identifier)是通用唯一识别码的缩写,它是一个128位长的数字,通常用于识别分布式系统中唯一的资源。Java中可以使用java.util.UUID类来生成UUID。 生成UUID Java中生成UUID通常使用随机数算法。UUID有两种格式:常用的基于字符串形式的 UUID 和…

    其他 2023年3月28日
    00
  • 电脑硬盘里的program files文件夹是什么意思

    电脑硬盘里的“program files”文件夹指的是安装在Windows操作系统上的应用程序和软件的主要目录,一般安装程序将软件安装到该目录下,同时该目录也是Windows操作系统中的受保护文件夹。 一般情况下,Windows操作系统在C盘下会默认创建一个名为“Program Files”的文件夹,主要用于存放已安装的软件和应用程序。这个文件夹的主要作用是…

    other 2023年6月27日
    00
  • js动态创建元素(两种方法)

    以下是JS动态创建元素的攻略,包含两种方法和两个示例: 方法一:使用createElement()方法 使用createElement()方法可以在JS中动态创建HTML元素。以下是一个使用createElement()方法的示例: // 创建一个新的div元素 var newDiv = document.createElement("div&qu…

    other 2023年5月6日
    00
  • ubuntu卸载vmware

    以下是详细讲解“Ubuntu卸载VMware”的完整攻略: 步骤1:卸载VMware 我们可以使用以下命令卸载 VMware: sudo vm-installer -u vmware-workstation 在上面的命令中,vmware-workstation 是要卸载的 VMware 软件包的名称。您安装了其他 VMware 软件包,请将其名称替换为相应的…

    other 2023年5月8日
    00
  • mysql 存储过程中变量的定义与赋值操作

    当在MySQL存储过程中定义和使用变量时,可以按照以下步骤进行操作: 定义变量:在存储过程的开头或需要使用变量的地方,使用DECLARE语句来定义变量。语法如下: sql DECLARE variable_name datatype [DEFAULT initial_value]; 其中,variable_name是变量的名称,datatype是变量的数据类…

    other 2023年8月9日
    00
  • Android编程实现的微信支付功能详解【附Demo源码下载】

    很抱歉,作为文本模型,我无法提供源代码的下载链接。但是,我可以为您提供一个详细的攻略来实现Android中的微信支付功能。以下是攻略的大纲: Android编程实现的微信支付功能详解 集成微信支付SDK 下载微信支付SDK,并将其添加到您的Android项目中。 在项目的build.gradle文件中添加微信支付SDK的依赖项。 注册微信支付 在微信开放平台…

    other 2023年10月13日
    00
  • sap 程序之间的相互调用

    SAP 程序之间的相互调用 在 SAP 系统中,不同的程序之间需要相互调用以完成特定的业务流程。例如,一个采购订单创建的程序需要调用一个供应商管理的程序来添加或修改供应商信息。在本文中,我们将介绍 SAP 程序之间的相互调用的几种方式。 RFC 调用 RFC(Remote Function Call)是 SAP 中传输数据和功能代码的标准方法。RFC 调用可…

    其他 2023年3月28日
    00
  • iPadOS13.1.2固件下载地址 iPadOS13.1.2下载

    iPadOS 13.1.2固件下载攻略 iPadOS 13.1.2是苹果公司最新发布的操作系统版本,它带来了一些修复和改进。如果你想下载并安装这个固件,下面是一个详细的攻略。 步骤一:备份你的iPad 在开始下载和安装新的固件之前,强烈建议你先备份你的iPad。这样可以确保你的数据在升级过程中不会丢失。你可以通过iCloud或iTunes进行备份。 步骤二:…

    other 2023年8月4日
    00
合作推广
合作推广
分享本页
返回顶部