Java:使用javapackager打包jar为exe并运行
Posted 你是小KS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:使用javapackager打包jar为exe并运行相关的知识,希望对你有一定的参考价值。
1. 声明
当前内容主要为本人学习和复习使用javapackager方式将jar文件打成exe包(也可使用其他的例如exe4j),主要参考官方文档,即一个具有自身容器exe
xml配置
groupId>springboot-test</groupId>
<artifactId>springboot-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-test</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.18.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2. 创建一个基本的springboot的demo并打成springboot的jar
@RestController
public class TestController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "hello";
}
}
入口类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
使用maven打包
3. 开始打成exe
1.首先将前面的springboot-test的jar复制到一个非中文的目录下
开始执行以下指令(这里写成bat脚本)
@echo off
echo package current jar to exe
set USE_JAR=springboot-test-0.0.1-SNAPSHOT.jar
set USE_CONFIG=config
set APP_CLASS=
set APP_NAME="SpringBootTest"
set OUT_FILE="SpringBootTest"
set TITLE="SpringBootTestDemo"
javapackager -deploy -native -outdir packages -outfile %OUT_FILE% -srcfiles %USE_JAR% -appclass org.springframework.boot.loader.JarLauncher -name %APP_NAME% -title %TITLE%
pause
执行中(这个-appclass就是当前jar的Main-Class启动类),如果出现360之类的安全警告,请全部允许
执行结果为:【packages/bundles/SpringBootTest中】
双击运行
浏览器访问
测试成功
这个打成的包是具有自身容器的,也就是本身自带jre,但是整个比较大
,如果需要修改其他的配置之类的请参考官方文档
注意
以上是关于Java:使用javapackager打包jar为exe并运行的主要内容,如果未能解决你的问题,请参考以下文章