一、前言

前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白大诗人 说的一句:人生贵相知,何用金与钱。朋友吗,不就是互相帮助吗?这个功能可以做的,我来我来,可以完成的,钱不钱的无所谓,主要是想为朋友做点事,咳咳咳~,言归正传,我那个朋友呢,他不是一个开发者,所以项目做好后,让他安装JDK、tomcat,根本就是不现实的啊,于是摸索了一阵之后,想到 idea将web项目 打包成jar一样使用, 然后再用 exe4j将jar打包成 exe文件, 说干就干。

二、开发环境

开发工具:IntelliJ IDEA
Jdk版本:1.8
项目框架:spring boot 2.2.1.RELEASE
exe4j工具:5.1
项目类型:Java Web 项目

三、项目打包

3.1 项目目录结构

这个就是正常的 spring boot 下正常的 jar 项目,我们创建的时候正常操作就行,下面就是我将这个项目做完之后的目录结构,大家可以参考一下。

3.2 打包生成jar

一、找到 idea工具中右边工具栏中的 maven 按钮

二、生成项目可执行 jar

操作步骤:

  1. clean清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的 target文件,但是不会删除本地的 maven 仓库已经生成的 jar 文件。
  2. install安装至本地仓库,将包安装至本地仓库,让其它项目进行依赖。会在项目路径下生成 class文件和jar包,同时会在本地 maven仓库生成 jar文件,让其他项目也可以使用
  3. package项目打包,将工程文件打包为指定的格式,例如Jar,War等。这个命令会在你的项目路径下一个 target目录,并且拥有 compile命令的功能进行编译,同时会在 target目录下生成项目的 jar/war文件,其中的 jar就是我们需要的东西。

其他命令(因为本文只是使用上面三个,这是几个带过一下):
validate:验证,验证工程是否正确,所需的信息是否完整。
compile:编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
test:单元测试
verify:核实,检查package是否有效、符合标准。
site:站点,生成项目的站点文档
deploy:复制到远程仓库

三、获取可执行 jar

生成成功之后,我们就可以在 target目录 下看到我们需要的 jar文件

四、复制这个jar文件,放到统一的一个文件夹下

四、工具准备

有一点需要说明的是,使用 idea 生成的 jar文件,会将 依赖 jar文件和配置文件都打进 项目jar 中,因此我们 不需要单独在添加依赖jar或配置文件,这一点很重要。

一、需要生成的 jar 文件

二、转换工具:EXE4J

关注公众号【牧小农】,后台回复 “exe4j” 即可获取下载地址

三、JDK中jre文件

四、完整文件展示

只需要我们 项目的jar 和 jdk中的 jre文件 就可以了
如果你需要自定义图标,可以自行放入一个ico 的文件

重点:所有的文件都放在一起,我们是需要打包给别人的,jre1.8.0_101和项目jar也要一起发给别人!!!!!

五、使用exe4j进行转换

下载安装完成后,界面如图,第一步完成注册,
Name和Company:随便填就是了
注册码:A-XVK258563F-1p4lv7mg7sav (网上很多,随便搜一个就行)

完成后点击Next

5.1 勾选JAR in EXE

表示将 jar 打包成 exe 程序,然后下一步

5.2 填写打包后的 exe程序名称和保存路径

5.3 填写exe 文件名和图标信息

5.4 选择操作系统,如果是64位操作系统,一定要勾选 64位系统的选择框


5.5 添加 要运行的jar路径

注意:因为idea 在导出springboot 项目 jar的时候会自动把我们需要的jar和配置文件导出,这里 不需要我们在添加其他依赖包和配置文件



注意:在spring boot中我们需要添加的是 org.springframework.boot.loader.JarLauncher,而不是我们每次运行的 WebApplication

5.6 填写支持运行的jdk版,这里用的是1.8

5.7 连带打包 jre



5.8 一直Next下一步,直到完成即可

5.9 生成exe程序文件

我们就会发现在我们包里面多了一个exe文件,我们点击运行。
如果有报错信息,在这个文件下会有一个error的日志文件,可以查看日志内容

注意:文件要放在一起,不能分开!!!

5.10 效果展示,这个在没有java环境下也是可以使用的,已经经过我朋友验证过了

六、关闭应用

我们打开这个应有后,如果需要关闭这个应用,该怎么操作呢?别担心,都给你准备好了,我们只需要写一个很简单的脚本就行了。

脚本命令:
@taskkill /f /IM textWeb.exe
textWeb.exe 是我自己的应用程序的名字,改成自己的就可以

6.1 新建一个 关闭程序的txt文件

6.2 将命令复制到txt文件中

@taskkill /f /IM textWeb.exe

6.3 将文件后缀改成 .bat

6.4 再访问我们的应用,无法访问

7 完成

我们只需要将这个文件夹下的文件打包压缩,发送给需要使用的人就可以了。就算对方没有java环境也是可以运行起来的。

在操作中大家如果觉得有改进或者疑问的地方,欢迎大家在下面进行留言,博主看到了会第一时间回复大家,我是牧小农,我喂自己带盐,学习路上你我同行,大家加油!

idea java web项目导出为jar打包成可运行exe程序相关推荐

  1. jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...

    java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...

  2. python读取文件并存入mysql_1.python读取txt文件并插入到mysql数据库以及将py脚本文件打包成独立的exe程序...

    读取txt文件并插入到mysql数据库 该小脚本适用于每天生成日志等信息到txt文本,然后通过windows的计划任务定时去执行python脚本打包成的exe文件,并将txt中内容读取以及格式化后插入 ...

  3. 【IneliJ 】使用IneliJ IDEA 2016将Java Web项目导出为War包

    本文记录使用IDEA导出war包的过程以及碰到问题的解决办法 虽说现在改用IDEA进行开发了,但还是用eclipse打war包 -.囧 这样下去不是办法... 于是今天就试着使用IDEA进行打包. 项 ...

  4. java web项目在tomcat中以调试模式运行

    转载地址:https://blog.csdn.net/gk_12/article/details/79689702 自己测试环境是: JDK1.8 Eclipse4.5 tomcat 8.5 如果只是 ...

  5. 使用electron把vue项目打包成windows应用exe程序

    1.安装electron依赖 npm install electron --save-devnpm install electron-packager --save-dev 2.修改vue.confi ...

  6. 怎样解决Java Web项目更改项目名后报错以及不能找到web路径问题

    怎样解决Java Web项目更改项目名后报错以及不能找到web路径问题 一个java项目怎么改项目名字,用F2改了后,但是web项目用网页运行时还要输入原来的项目名字才能运行项目,不然报404错误,我 ...

  7. eclipse maven打包jar 部分jsp无法访问_Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目...

    Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目 步骤1:删除j2ee目录步骤2:新建Maven 项目步骤3:这个界面点下一步步骤4: 这个界面使用webapp ...

  8. java项目导入包报错_转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类...

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  9. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

最新文章

  1. Luogu P5556 圣剑护符(线性基,树链剖分,线段树)
  2. 卢京潮自动控制原理ppt_视觉定位系统在贴片机中的使用与原理作用
  3. struts2之ModelDriven的使用
  4. This Jenkins instance appears to be offline
  5. visual studio 重命名项目和程序集名称
  6. C语言数据结构(大话数据结构——笔记1)数据结构绪论、算法、线性表
  7. 2013-3-14 生活日记
  8. linux实验总结及心得_安全实验室 | 内网渗透—Linux权限维持技巧总结
  9. onCreat 函数 回调函数
  10. hdfs和日志业务系统
  11. @ConfigurationProperties 在IDEA中出现红色波浪线问题
  12. 同宿舍的程序员毕业五年的现状:有人要当“螺丝钉”,有人头发掉光要出家...
  13. 致 Python 初学者
  14. 体检导检系统服务器系统,全科智能导检系统
  15. java代码计算两个时间相差的天数:
  16. 修改bounds属性后的效果
  17. 阿里云电脑无影云桌面收费标准(CPU内存/云盘/互联网访问带宽)
  18. 计算机程序前端和后端指什么,什么是前端和后端
  19. aix java解压,AIX 7.1 jar unzip解压报错问题解决
  20. sra-toolkit报错:An error occured: SetCurrentDirectory: 目录名称无效。

热门文章

  1. 90% 的企业偏爱!你需要摆脱 Windows 系统思维
  2. TDS for Sybase协议分析
  3. SAP供应商主数据的维护-印度TDS
  4. html中怎么写正六边形,如何用css画正六边形?用css画正六边形的两种方法(代码实例)...
  5. 几种分布式存储组网架构参考
  6. 分布式存储高性能的好帮手--RDMA
  7. 小米手环3耗电情况及设置
  8. 华为服务器安全性能,华为服务器靠创新、可靠、安全、开放赢得市场和客户
  9. 大空间享大智慧 奇瑞新能源奇瑞大蚂蚁
  10. C++面试试题大全,包括华为、雅虎等企业