首页 » Web前端 » phpexecjar包技巧_Spring Boot 怎么打一个可实行 Jar 包

phpexecjar包技巧_Spring Boot 怎么打一个可实行 Jar 包

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

Java 支持打 Jar 包,但没有供应一个标准的办法在一个 Jar 包内再加载嵌入别的 Jar 包,一样平常须要扩展类加载器来实现,纵然这样,也做不到打成一个包运行,由于没有 Servlet 容器。

有了 Spring Boot 框架之后,这统统都变得大略,我们可以很方便的将运用程序打成一个可实行 Jar 包。

phpexecjar包技巧_Spring Boot 怎么打一个可实行 Jar 包

怎么打成 Jar 包运行?

phpexecjar包技巧_Spring Boot 怎么打一个可实行 Jar 包
(图片来自网络侵删)

1、添加插件

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec-${env}</classifier> </configuration> </execution> </executions></plugin>

这里是添加了一个 Maven 打包插件,通过配置可以定制打成的 Jar 包的格式,如:javastack-exec-dev.jar。

如果你是用的 spring-boot-starter-parent 办法来利用 Spring Boot,那就不用写 executions 选项,由于它包括了 executions repackage 构建配置。

这个插件的更多用法参考:

https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/maven-plugin/usage.html

2、打成 Jar 包

利用 mvn package 命令或者 IDE 中的 Maven 插件都可以打包。
Maven 不熟习的请关注Java技能栈微信公众年夜众号,在后台回答:maven,干货栈长我都整理好了。

打完包之后,在项目 target 目录就可以看到打成的 Jar 包。

这个 Jar 包除了包括编译完的 class 文件,还内置了 Servlet 容器,并集成了所有须要依赖的其他 Jar 包库,我们来看下这个 Jar 包的目录构造。

├─BOOT-INF│ ├─classes│ │ └─cn│ │ └─javastack│ │ └─demo│ └─lib├─META-INF│ └─maven│ └─cn.javastack│ └─demo└─org └─springframework └─boot └─loader ├─archive ├─data ├─jar └─util

在文件 \META-INF\MANIFEST.MF 中找到运用程序启动类:

Manifest-Version: 1.0Archiver-Version: Plexus ArchiverBuilt-By: javastackStart-Class: cn.javastack.demo.ApplicationSpring-Boot-Classes: BOOT-INF/classes/Spring-Boot-Lib: BOOT-INF/lib/Spring-Boot-Version: 2.1.3.RELEASECreated-By: Apache Maven 3.5.0Build-Jdk: 1.8.0_151Main-Class: org.springframework.boot.loader.JarLauncher

3、运行 Jar 包

运行命令格式:

$ java -jar xxx.jar

这个命令的更多用法请看这篇文章:Java Jar包的压缩、解压利用指南,或者关注Java技能栈微信公众年夜众号,在后台回答:java。

运行命令演示:

$ java -jar javastack-exec-dev.jar

. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.3.RELEASE)....... . . ........ . . . (log output here)....... . . ......... Started Example in 2.536 seconds (JVM running for 2.864)

好了,跑起来了。
更多运行 Spring Boot 的方法看这篇文章:运行 Spring Boot 运用的 3 种办法!

好了,本日的分享就到这里,更多 Spring Boot 文章正在撰写中,关注Java技能栈微信"大众年夜众号获取第一韶光推送。

在"大众号后台回答:boot,还能获取栈长整理的往期 Spring Boot 教程,都是实战干货,以下仅为部分预览。

Spring Boot 读取配置的几种办法Spring Boot 如何做参数校验?Spring Boot 最核心的 25 个表明!
Spring Boot 2.x 启动全过程源码剖析Spring Boot 2.x 新特性总结及迁移指南……

获取所有 Spring Boot 示例代码,请关注微信公众年夜众号 \"大众Java技能栈\公众 在后台回答关键字:bootcode。

未完,栈长将陆续分享 Spring Boot 最新技能教程,现在已经写了一堆存货了,关注微信公众号 \"大众Java技能栈\"大众 ,"大众年夜众号第一韶光推送!

标签:

相关文章