Spring Boot -jar 命令指定jre 环境 不需要配置 java 环境运行应用

本文介绍一种简便方法,使SpringBoot应用能够指定JRE环境启动,避免依赖JAVA_HOME或PATH变量。通过内置JRE及调整启动脚本,确保应用在任何环境下都能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       一个Java 应用想要运行就必须安装JRE,嗯!没毛病!一个Java应用用到的JRE版本可能不同,也没毛病,可是如果换一台机器就要装一次环境,换一台装一次,太累了,确实太累了

       今天就说一个贼简单的方法,来实现spring boot 应用指定jre 环境 启动,不依赖于java_home 或 path。

       1 首先需要下载你需要版本的jre 例如我的如下图

       

       2 简单介绍下这个目录下的所有目录。

             config 文件夹  > >  spring boot 应用允许将配置文件放到jar包之外,当然肯定有一定规则,规则如下:

             第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下。 优先级最高 

             第二种是直接把配置文件放到jar包的同级目录。优先级较上次之 

             第三种在classpath下建一个config文件夹,然后把配置文件放进去。优先级较上次之 

             第四种是在classpath下直接放配置文件。优先级较上次之 

             jre1.8.0_151  >>   这个是我的应用yila依赖的环境

             logs    >>   这个是我应用打印的日志。不启动不会存在。

             elasticsearch-1.0.jar   >>  这个是我springboot 的应用了。

             statr.bat  >>  这个是批处理文件 ,内容很简单 如图。

### 如何将使用 `spring-boot-starter-parent` 的 Spring Boot 项目打为 WAR 文件 为了将基于 `spring-boot-starter-parent` 构建的 Spring Boot 应用程序从默认的 JAR方式更改为 WAR 打方式并部署到外部 Servlet 容器(如 Tomcat),需要调整项目的配置。以下是具体方法: #### 修改 `pom.xml` 1. **更改 `<packaging>` 类型** 将 `<packaging>pom</packaging>` 或者缺省的 `jar` 更改为 `war`,以便 Maven 能够生成 WAR 文件[^1]。 ```xml <packaging>war</packaging> ``` 2. **移除嵌入式 Tomcat 插件依赖** 如果希望应用运行于外部容器,则需排除内置的 Tomcat 支持,并替换为 Servlet API 提供支持。通过以下代码实现这一点: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除嵌入式的Tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加Servlet API的支持 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> ``` 3. **修改启动类继承关系** 默认情况下,Spring Boot 使用 `SpringBootApplication` 注解来定义应用程序入口点。当切换至 WAR 部署模式时,应扩展 `SpringBootServletInitializer` 并重写其 `configure()` 方法以适配传统 Web 容器环境[^2]。 ```java import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class MyApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyApplication.class); } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 完成上述改动之后,在执行构建命令(例如 `mvn clean package`)后即可获得 `.war` 文件用于后续部署操作。 --- ### 注意事项 - 当前设置下含内嵌式服务器组件;因此必须借助第三方工具比如 Apache Tomcat 来承载该服务实例。 - 确认目标环境中已安装适当版本的 Java Runtime Environment (JRE),因为某些功能可能受限于特定 JVM 实现特性之上。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值