把Jar文件转成exe安装文件的实现方法

所属分类: 软件编程 / java 阅读数: 40
收藏 0 赞 0 分享

1.你要清楚的目标文件是32位还是64位的,如果生成的是32位,你就要使用32位的jre,如果生成的是64位,就要使用64位的jre。

图 1

在圆圈位置进行32bit或64bit的选择。因为我要创建的是32bit,所以就使用默认的。

2.JRE的配置(没配置好的话报各种JAVA_HOME错误):

我先创建一个文件夹叫“HJ小助手”,然后把我的可执行程序limitvic1.1.jar和jre文件夹放进去,以后生成的.exe文件也放在这个目录。

图2

点击图一中的第六项JRE的search Sequence,会出现如图所示界面:

图三

把这三项都删掉,然后重新选择jre的目录,指定目录为“HJ小助手1.1”文件夹中的jre文件夹。如图:

图四

这样子导出来的.exe可执行文件就可以执行,不会报如下图所示的错误了,把"HJ小助手1.1"这个文件夹发给电脑没有安装jre 的小伙伴也可以使用。

3.转化后的.exe文件无法显示图片资源。

我的项目是Swing项目,其中需要用到一些图标。因为是.exe执行文件,所以读取图片资源的时候需要用到类加载器,而不能直接使用URL地址。

ImageIcon icon = new ImageIcon(ImageIO.read(getClass().getClassLoader().          

getResource("frame.png")));

还有很重要的一点就是图片放置的文件夹必须是系统资源文件夹,不然图片获取不了,如图所示将文件夹设置为资源文件夹。

4. 既然已经生成了可运行的.exe文件,但是给别人使用的时候就要把jre文件夹也一起放进去,这样子文件夹大小似乎达到了100多兆了,可你原本的文件其实很小,所以我用Inno Setup 打包工具,把文件夹打包成一安装文件,这样子占用容量就减小了很多。Inno Setup 工具的使用方法也是十分简单,而且网络上已经可以下载到汉化版本的。这里就提一下在打包过程中的一个该注意的问题:

如图所示:添加文件夹的时候,要把jre文件夹的上一级目录添加进去,在本项目中是"HJ小助手1.1"这个文件夹,不然运行的时候找不到jre文件。

根据脚本向导步骤很快就可以生产.exe的安装文件,大小为30多兆,比原来的文件夹小多了。

以上就是小编为大家带来的把Jar文件转成exe安装文件的实现方法全部内容了,希望大家多多支持脚本之家~

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多