非springboot项目IDEA打包引入第三方jar包

写了一个maven项目,需要引入两个外部jar包,本地引入后正常运行,在打包时就遇到了问题,必需把工程依赖的jar包也一起打包。

如果是springboot项目打包是很好打的,附上一篇链接:https://blog.youkuaiyun.com/dongxiexiaoadou/article/details/106872047?spm=1001.2014.3001.5501

非springboot项目:

1、使用maven-shade-plugin

使用maven默认的package命令构建的jar包中只包括了工程自身的class文件,并没有包括依赖的jar包。

我这里使用的是另外的一个插件来进行打包,插件名称为:maven-shade-plugin,shade插件打包时在对spring.schemas文件处理上,它能够将所有jar里的spring.schemas文件进行合并,在最终生成的单一jar包里,spring.schemas包含了所有出现过的版本的集合,要使用shade插件,必须在pom进行如下配置:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-shade-plugin</artifactId>
   <version>2.4.1</version>
   <executions>
       <execution>
           <phase>package</phase>
           <goals>
               <goal>shade</goal>
           &
### 将 Spring Boot 项目通过 IDEA 打包为 EXE 文件 目前,Spring Boot 默认支持生成 JAR 或 WAR 格式的可执行文件[^2]。然而,如果目标是将 Spring Boot 应用程序打包为 Windows 平台上的 EXE 可执行文件,则需要借助第三方工具或框架来实现这一功能。 以下是具体方法: #### 方法一:使用 Launch4j 工具 Launch4j 是一种开源工具,可以将 Java 的 JAR 文件封装为 Windows 上的 EXE 文件。操作流程如下: 1. **生成 JAR 文件** 使用 Maven 或 Gradle 插件,在 IntelliJ IDEA 中构建 Spring Boot 项目并生成可执行的 JAR 文件。例如,Maven 构建命令如下: ```bash mvn clean package ``` 2. **下载并安装 Launch4j** 访问 [Launch4j 官方网站](http://launch4j.sourceforge.net/) 下载最新版本,并按照说明完成安装。 3. **配置 Launch4j** 启动 Launch4j 软件后,设置以下参数: - Output file: 设置生成的目标 EXE 文件路径。 - Jar: 指定上一步生成的 JAR 文件路径。 - Class path: 如果有额外依赖项,需在此处指定。 - JVM options 和其他高级选项可根据需求调整。 4. **生成 EXE 文件** 配置完成后点击“Build wrapper”,即可生成对应的 EXE 文件。 #### 方法二:使用 jpackage (Java 14+ 提供的功能) 自 JDK 14 开始,Oracle 引入了一个名为 `jpackage` 的新工具,用于简化 Java 应用程序向原生平台应用程序的转换过程。 1. **确保环境满足条件** 确认已安装 JDK 14 或更高版本,并将其 PATH 添加至系统变量中。 2. **编译并打包 Spring Boot 项目** 类似于上述步骤,先通过 Maven/Gradle 构建生成完整的 JAR 文件。 3. **运行 jpackage 命令** 利用以下命令行指令创建 EXE 文件: ```bash jpackage --type exe --input target/ --name MyAppName --main-jar my-springboot-app.jar ``` 参数解释: - `--type`: 输出的应用程序类型(此处为 exe)。 - `--input`: 输入目录,通常指向含最终 JAR 文件的位置。 - `--name`: 设定生成的 EXE 名称。 - `--main-jar`: 明确指出主 JAR 文件名。 注意:此方法可能涉及更多复杂的配置细节,尤其是当项目存在大量外部库时[^3]。 #### 总结 虽然 Spring Boot 主要设计用来生产跨平台兼容性强的 JAR/WAR 文件,但借助像 Launch4j 这样的辅助工具或者现代 JDK 自带特性如 jpackage,完全可以达成制作独立 EXE 文件的目的。不过需要注意的是,这种方式可能会增加部署复杂度以及维护成本。 ```python # 示例 Python 片段展示如何调用子进程执行 jar import subprocess subprocess.run(["java", "-jar", "myapp.jar"]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值