Bootstrap

Idea Java及JavaFx导出exe并自带jre任意电脑运行

夜里没事干,帮朋友的游戏运营公司搞一个桌面程序。但我更熟练Java,于是临时抱佛脚看看javaFx资料写了出来,然后集成exe,任意电脑安装这个程序就可以使用(自带jre环境,不需要额外安装)。所以记录下来,留着下次用

一、idea 配置javaFx 及exe生成

选择Artifacts  ——>  选择+号  ——> 因为我是javaFx所以选择JavaFx application  ——>选择自己的项目

 

 

其次选择JavaFx配置好自己的入口类

Native bundle选择all,其实这里会生成exe,这种的已经可以使用,但是必须是电脑有jre环境的情况下才行。总不能发给别人,让别人装个jre去吧,一般别人都是小白并不会的,没事不怕,继续往下看

 

如果你觉得足够了的话,那就无所谓了,你可以选择下面这个搞个图标,就可以玩去了,如果你不想让别人还得自己安装jre就耐心看完

 

 上面一切搞定后就点OK

二、Build打包

 

 这个时候out文件夹里就能看到打包文件了  jar和exe都有

 三、安装exe4j工具,并打包出exe

首先你得保证你的jar包文件使用java -jar  命令运行你的jar包是正确无误的。

exe4j下载工具网上很多,搜一下加载,傻瓜式安装就行。

接下来就是打包出exe了,看好步骤

1. open可以选择之前保存下来的配置文件,如果你是第一次,那就不用管

2. 选择enter license 

name和company随便吧  

license key:  L-g782dn2d-1f1yqxx1rv1sqd

 license填完,直接next

3. 选择jar生成exe模式,next

4. 给你的程序起个名字,无所谓了,下面的是 生成的exe所在的文件夹,这里要记得,别最后生成了你找不到了

 5. 这个就是你真正的exe文件名了,以及ico 图标的选择,没有ico图标的,从网上找个图片转ico的在线转一下就行

 这里我选择是生成64位系统可执行文件,一般都是64位的电脑

 6.  按顺序选择你一开始idea生成的,可无误运行的jar包

 再去选择你这个jar的入口类,我这里是MainView,然后next

 7. 按要求填jar运行所需环境版本

 把这里全部清空,三个全删除

 然后选择+号,选择Directory,手动填入.\jre

 

 这里选择第二个

 8. 然后一路next到结束

 退出的时候可以选择保存,保存下来就对应上第一张图里的open选择之前的配置了,下次打包就方便了。这时,生成的exe在第三步里选择的生成的exe所在的文件夹里了。

这个时候已经完成一半了,接下来就是把exe和jre等打包在一起,这样别人就可以直接运行你的程序,无需手动安装jre之类了

四、使用Inno setup 程序

也是一样自己去网上下载,网上很多,傻瓜式安装运行

1. 运行后是这个样子,不用管,点文件, 选择新建

下一步

2. 这里按你自己的意愿随便填吧

 

一样随便填吧,下一步

 

 3. 选择exe4j给你生成的exe和jre等

这里选择exe4j给你生成的exe程序

点击下面的添加文件夹,选择你的jre文件夹,建议复制一份出来,再选择

 

如果你跟我一样,希望别人安装后,还有一些其他文件也包含在里面,比如使用前必读.txt等文件,都可以在这里选择

 

4.这里是填写在开始菜单里的你的程序名字,然后下一步

 

这一步可以不填,下一步

 

 继续下一步

 

5.编译设置

这里从上到下分别是  

最终程序想要生成在哪个的文件夹

别人可以看到的exe安装程序的名称

安装程序的图标

安装时如果需要密码,那么密码是多少,不需要密码就不填

下一步

到此结束,下一步

 

 6.完成后,会出现这样,先不要编译

 在这个位置,把jre的所在位置由 {app} 改成{app}\jre

 注意:如果你的程序运行过程中,会在当前目录生成一些文件,这个看你代码的需求,比如我的就会生成一些txt用来记录数据的。那么在程序卸载的时候,是不会删除这些文件的,用户体验就比较差了,于是我在最下面加了一个[UnistallDelete] 标签,填写了

Type: files; Name: "{app}\你的文件.txt";

 具体的文件名看你自己的情况

到此全部结束,选择运行,然后你的安装程序就打包好了,生成的文件在刚刚选择的输出文件夹里。

 

 把这次生成的exe发给别人,别人就可以安装运行了。

本人个人原创,如有雷同,纯属巧合,或者与本人联系,做改动。请转载或者CV组合标明出处,谢谢!(如有疑问或错误欢迎指出,本人QQ:752231513)

;