案例:本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件
方法一:相对路径设置配置文件
(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:
confData=data
1
(2)开始写入自动化测试代码
//java项目www.fhadmin.org
public class Test{
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)开始写入自动化测试代码
//java项目www.fhadmin.org
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
相关推荐
在使用SpringBoot进行开发时,我们...通过以上知识点的介绍,我们可以解决SpringBoot应用打成jar包后无法读取resources目录下文件的问题,并且在处理数据时能够更加高效。希望这些内容能对大家在实际开发中有所帮助。
在Spring Boot项目中,文件上传、显示和下载是常见的需求,尤其在构建Web应用程序时。Spring Boot提供了一种简单而高效的方式来处理这些操作。这里我们将深入探讨如何在...最后,打包成JAR文件使得应用易于部署和运行。
另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元。基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力。 Docker与Spring...
1. 将 SpringBoot 项目打包成 War 包或 Jar 包。 2. 将 War 包或 Jar 包上传到 Linux 服务器上。 3. 配置 Tomcat 服务器或内置 Tomcat 服务器。 4. 启动 Tomcat 服务器或 SpringBoot 应用程序。 总结 本文详细介绍...
1. 配置文件的读取:SpringBoot应用程序可以通过application.properties文件或application.yml文件来配置外部依赖项。这些配置文件可以被放置在classpath目录下或jar包内部。SpringBoot会根据一定的顺序来加载这些...
SpringBoot 支持内嵌的 Tomcat、Jetty 或 Undertow 等 Servlet 容器,这意味着开发人员无需额外部署到外部服务器,可以直接运行 `jar` 文件启动服务。这对于快速测试和部署音乐播放器应用非常方便。 【Spring Data ...
在没有Spring Boot之前,项目中可能存在大量XML配置文件,整合第三方框架时需要处理jar包冲突,开发和部署效率较低。Spring Boot通过自动配置解决了这些问题,使得配置变得更简洁,编码更高效,部署也更为便捷。 要...
Spring Boot的核心配置文件有`application.properties`和`bootstrap.properties`,前者主要用于项目自动化配置,后者适用于加载外部配置中心信息、固定不可覆盖的属性和加密解密场景。 【配置中心配置】 1. 创建...
本文将深入探讨Spring Boot如何读取外部配置文件,并提供详细的操作指南。 首先,Spring Boot 支持多种外部配置文件的方式。最常见的是使用`application.properties`或`application.yaml`文件。这些文件通常被放置...
3. **环境属性(Environment Properties)**:SpringBoot应用可以从多个源读取配置,包括命令行参数、环境变量、配置文件等。`@Value`注解和`Environment`接口可以用来访问这些属性。 4. **Spring Boot Actuator的...
3. `@ConfigurationProperties`:将配置文件中的属性绑定到Java对象,方便管理和使用。 4. `@RestController`:用于创建RESTful风格的控制器,结合了`@Controller`和`@ResponseBody`。 5. `@Autowired`:自动装配...
- `src/main/resources`:存放配置文件,如 `application.properties` 或 `application.yml`,以及可能的静态资源。 - `src/test/java`:存放测试代码,用于验证代码功能。 "lib" 文件夹可能包含了项目的依赖库,...
SpringBoot的自动配置原理是通过@EnableAutoConfiguration注解激活的,它会读取META-INF/spring.factories文件中定义的自动配置类,并结合对应的xxxProperties.java类来读取配置文件,进行相应的功能配置。...
9. **系统权限问题**:检查部署目录和Tomcat运行时的用户权限,确保有足够的权限读取、写入和执行文件。 10. **应用代码**:检查你的业务逻辑,确认在部署环境下的运行行为。404错误可能是由于路由配置、控制器方法...
- **环境与配置**:应用读取`application.properties`或`application.yml`等配置文件,支持Profile特定配置。 3. **Web开发** - **Spring MVC**:SpringBoot默认使用Spring MVC作为Web框架,处理HTTP请求。 - **...
5. **YAML/Properties配置**:Spring Boot支持YAML和Properties两种格式的配置文件,源码会展示如何读取和使用这些配置,以及如何进行环境变量的配置管理。 6. **数据访问**:包括JPA(Java Persistence API)和...
- **外部配置**:支持读取外部文件、环境变量等方式提供配置。 - **配置中心**:利用 Spring Cloud Config Server 实现动态配置管理。 - **第三方技术整合**: - **Spring Data JPA**:用于数据库访问。 - **...