`
java框架平台spring
  • 浏览: 24677 次
文章分类
社区版块
存档分类
最新评论

springboot 运行 jar 包读取外部配置文件

 
阅读更多

案例:本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件
方法一:相对路径设置配置文件
(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:

confData=data
1
(2)开始写入自动化测试代码

//from www.fhadmin.cn
public classTest{
    public String getData()throws IOException {
        //读取配置文件
        Properties properties = new Properties();
        File file = new File("conf.properties");
        FileInputStream fis = new FileInputStream(file);
        properties.load(fis);
        fis.close();

        //获取配置文件数据
        String confData = properties.getProperty("confData");
        System.out.println(confData);
    }
}

 


(3)执行jar包

java -jar jarNanexxx


方法二:绝对路径设置配置文件
解决问题:使用相对路径的方法在jar包同级目录手动执行jar包时没有问题,但使用linux系统的crontab文件定时调度时报错,原因:因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量,或者在程序中使用绝对路径。
(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:

confData=data


(2)开始写入自动化测试代码

//from www.fhadmin.cn
public class Test{
    public String getData() throws IOException {
       //获取jar包同级目录
        String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
        String[] pathSplit = path.split("/");
        String jarName = pathSplit[pathSplit.length - 1];
        String jarPath = path.replace(jarName, "");
        String pathName=jarPath+"minhang.properties";
        System.out.println("配置文件路径:"+jarPath);

        //读取配置文件
        Properties properties = new Properties();
        File file = new File(pathName);
        FileInputStream fis = new FileInputStream(file);
        properties.load(fis);
        fis.close();

        //获取配置文件数据
        String confData = properties.getProperty("confData");
        System.out.println(confData);
    }
}

 


(3)执行jar包

java -jar jarNanexxx

 

分享到:
评论

相关推荐

    spring boot加载第三方jar包的配置文件的方法

    在Spring Boot应用中,加载第三方jar包的配置文件是一个常见的需求,特别是在集成其他框架或库时。Spring Boot的设计理念是简化配置,但它同样支持加载外部的配置文件来满足复杂的应用场景。以下是如何在Spring Boot...

    解决SpringBoot打成jar运行后无法读取resources里的文件问题

    在使用SpringBoot进行开发时,我们经常会遇到在开发环境中能够正常读取resources目录下的文件,但是一旦将应用打包成jar文件并部署到服务器上运行时,就无法访问到这些资源文件的问题。这是因为SpringBoot的打包机制...

    Springboot读取配置文件及自定义配置文件的方法

    在Spring Boot应用中,配置文件的管理是至关重要的,它允许开发者定义应用程序的行为和外部服务的连接信息。Spring Boot提供了一种简洁的方式来管理和读取这些配置文件,使得配置过程更加简单和灵活。以下是对Spring...

    springboot所需的所有jar包(非maven)

    在传统的 Java 开发中,Maven 或 Gradle 这样的构建工具能够自动管理项目的依赖关系,它们通过读取配置文件(如 Maven 的 `pom.xml` 或 Gradle 的 `build.gradle`)来下载和集成所有必要的库。然而,在不使用这些...

    springboot 项目实现文件上传,显示,下载,打包为jar

    运行`mvn clean package`命令,将会生成一个名为`my-app.jar`的可执行JAR文件,包含了整个应用及其依赖,可以直接运行。 总结起来,Spring Boot提供了便捷的方法来处理文件上传、显示和下载。通过自定义静态资源...

    Spring Boot 把配置文件和日志文件放到jar外部

    如果不想使用默认的application.properties,而想将属性文件放到jar包外面,怎么做呢?下面小编给大家带来了两种方法解决Spring Boot 把配置文件和日志文件放到jar外部问题,感兴趣的朋友一起看看吧

    Springboot引用外部配置文件的方法步骤

    Springboot 引用外部配置文件的方法步骤是指在 Springboot 项目中如何从外部配置文件中读取配置信息的方法。这种方法可以让我们在不修改项目代码的情况下对配置信息进行修改。 首先,我们可以通过命令行参数的方式...

    Springboot + Hutool-db 使用 URLClassLoader 动态加载外部数据库和数据池 jar包实例

    这里的数据源配置可以从加载的jar包中读取,例如,通过读取配置文件或者直接在代码中设置连接参数。 5. 通过创建的数据源,你可以进行数据库的连接、查询、事务处理等一系列操作。 `PostmanTest.json`可能是一个...

    SpringBoot上传文件到本服务器 目录与jar包同级问题

    解决 SpringBoot 上传文件到本服务器目录与 jar 包同级问题需要我们使用 ClassPathResource 来读取资源文件,并将文件存放在与 jar 包同级的目录下。同时,我们需要在 application.yml 配置中指定静态资源的目录,...

    详解在Docker容器中运行Spring Boot应用

    另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元。基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力。 Docker与Spring...

    基于 SpringBoot 开发的超简洁音乐播放器

    SpringBoot 支持内嵌的 Tomcat、Jetty 或 Undertow 等 Servlet 容器,这意味着开发人员无需额外部署到外部服务器,可以直接运行 `jar` 文件启动服务。这对于快速测试和部署音乐播放器应用非常方便。 【Spring Data ...

    SpringBoot加载外部依赖过程解析

    1. 配置文件的读取:SpringBoot应用程序可以通过application.properties文件或application.yml文件来配置外部依赖项。这些配置文件可以被放置在classpath目录下或jar包内部。SpringBoot会根据一定的顺序来加载这些...

    springboot简单源代码

    这个注解会启动自动配置过程,扫描应用的类路径,并根据存在的jar包和配置文件来决定哪些组件应该被自动配置。例如,如果在类路径中发现了 HSQLDB 数据库的相关jar,SpringBoot 将自动配置一个内存数据库。 其次,...

    Spring Boot常见外部配置文件方式详析

    本文将深入探讨Spring Boot如何读取外部配置文件,并提供详细的操作指南。 首先,Spring Boot 支持多种外部配置文件的方式。最常见的是使用`application.properties`或`application.yaml`文件。这些文件通常被放置...

    SpringBoot.docx

    Spring Boot的核心配置文件有`application.properties`和`bootstrap.properties`,前者主要用于项目自动化配置,后者适用于加载外部配置中心信息、固定不可覆盖的属性和加密解密场景。 【配置中心配置】 1. 创建...

    springboot部署linux访问服务器资源的方法

    1. 将 SpringBoot 项目打包成 War 包或 Jar 包。 2. 将 War 包或 Jar 包上传到 Linux 服务器上。 3. 配置 Tomcat 服务器或内置 Tomcat 服务器。 4. 启动 Tomcat 服务器或 SpringBoot 应用程序。 总结 本文详细介绍...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1

    本篇文章将详细探讨如何在Spring Boot项目中读取不同路径下的`applicationContext.xml`配置文件。 首先,了解Spring Boot的核心理念是简化Spring应用程序的初始设置,它默认并不支持从XML配置文件加载bean。然而,...

    SpringBoot技术分享(培训ppt文档).pptx

    在没有Spring Boot之前,项目中可能存在大量XML配置文件,整合第三方框架时需要处理jar包冲突,开发和部署效率较低。Spring Boot通过自动配置解决了这些问题,使得配置变得更简洁,编码更高效,部署也更为便捷。 要...

Global site tag (gtag.js) - Google Analytics