Java项目打包成exe的详细教程

Java项目打包成exe的详细教程

把Java项目打包成exe共分为以下两步:

1、 利用Eclipse先把Java项目先打成jar包

2、 利用exe4j工具把jar包转成exe

 

这里以Java项目(ExeDemo)为例进行讲解

随便在一个位置新建一个文件夹,文件夹的名称也可以随便起,这里我们在桌面上新建一个文件ExeDemo

 

 

1、利用Eclipse先把Java项目先打成jar包

(1)找到要转成exe的Java项目

 

(2)Export相应的Java项目

 

(3)选择Java->JAR file

 

(4)按照如下设置,然后点击Finish结束

 

(5)即可生成相应的jar包(ExeDemo.jar文件)

 

2、利用exe4j工具把jar包转成exe

(1)把Java项目中引用的jar包lib目录拷贝到ExeDemo目录中

 

 

(2)把自己电脑上装的jre环境也拷贝到ExeDemo目录中

 

(3)在ExeDemo目录中可以新建一个image(名字可以自己随便起)目录,存放JFrame要引用的图标

至于程序中的路径可以参考以下代码:

mainJFrame.setIconImage(newImageIcon(System.getProperty("user.dir")+"\\image\\logo.jpg").getImage());

 

(4)安装exe4j工具(自己上网下载,我用的是exe4j 5.0)

 

(5)打开exe4j工具,点击Next

 

(6)选择JAR in EXE mode

 

(7)输入exe程序短名称和exe程序输出位置

 

(8)输入应用程序名称,如果想为程序添加图标ico,可以在这一步的红色方框位置选择图标ico的位置。

 

(9)这一步是选择产生一个64位的可执行程序exe

(10)这一步是选择要添加的jar包,把Java项目打包成的JAR包【ExeDemo.jar】和Java项目中外部依赖的JAR包【也就是lib文件夹中的JAR包】都添加进来和根据Java项目实际情况选择主类(cn.demo.UIMain)。主类就是你的程序运行的入口

 

 

如果是JAVA项目工程是UTF-8,为了防止JAVA项目中的读写中文字符串有乱码产生,可以在这里红框位置添加参数(-Dfile.encoding=utf-8)

如果打包出来出现乱码情况则:打包的时候设置编码:exe4j的Configurejava invocation 的VMParameters 

输入:-Dfile.encoding=utf-8 来防止打包后的exe出现乱码

 

(11)填写JRE最小版本需求

 

(12)添加并选择JRE Search sequence,也就是JRE环境搜索顺序。

 

 

 

 

 

 

并利用右下角的蓝色小箭头将项目中的jre放在最上面,让exe搜索JRE的时候优先选择ExeDemo文件夹中包含的JRE

 

 

 

(13)选择Next

 

 

 

 

(14)选择Next

 

 

(15)最后即可生成ExeDemo.exe可执行程序

(16)双击即可运行程序。

 

文章来源:https://blog.csdn.net/youngstar70/article/details/75116227。文章写的实在太详细了,非常感谢博主的分享

转载于:https://www.cnblogs.com/jepson6669/p/9211211.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

音频转码工具本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放。支持 Linux/Windows/Mac 平台因为是基于 JAVE 项目的修改,而 JAVE 是依赖 ffmpeg 所以可以适用于所有 ffmpeg 所支持的文件格式的转换。具体可以查看 JAVE 官方…

MySQL小问题:cant connect to MYSQL server on localhost

连接数据库发现出现了错误:2003-cant connext to MYSQL server on localhost 解决方法: 1.winr 打开cmd控制台,首先net startenter 查看有没有mysql服务启动,一般这不会出现问题 此时你输入mysql -u root -p 是会出现错误的 2…

【c# 学习笔记】所有类的父类:System.object

在c#中,所有的类都派生自System.Object类。如果定义的类,没有直达任何基类,编译器就会自动把Object类当作它的基类。和其他类 一样,System.Object类也定义了一组共有的成员,其定义如下: public class Objec…

数学史上的哲学绝唱——无穷观与数学基础的争论

来源:《广西民族大学学报》2014年11月作者:郭龙先,黄永两千多年来,数学家们一直试图从少数公理出发,根据明确给出的演绎规则推导出其他数学定理,从而把整个数学构造成为一个严密的演绎大厦,然后…

java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)

Discrete Cosine Transform [DCT] (离散余弦变换)描述:Binarizer是一个Transformer。离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变换但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅…

Leetcode--141. 环形链表

给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head …

MapReduce 踩坑 - hadoop No FileSystem for scheme: file/hdfs

一、场景 hadoop-3.0.2 hbase-2.0.0 一个mapreduce任务,在IDEA下本地提交到hadoop集群可以正常运行。 现在需要将IDEA本地项目通过maven打成jar包,从而能够在windows/Linux命令行下,通过Java -jar方式运行。 二、状况 报错可能1:…

解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?

来源 :AI前线作者 :滴滴自动驾驶技术团队策划 :陈思「重点问题」什么是合适的无人驾驶车辆平台?复杂场景下的“无人驾驶”,传感器硬件系统还有哪些挑战?告别 demo 硬件系统后,下一个前装量产的必…

Leetcode--142. 环形链表Ⅱ

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有…

java中字符串函数_JAVA中字符串函数subString的用法小结

string str;str=str.substring(int beginindex);截取掉str从首字母起长度为beginindex的字符串,将剩余字符串赋值给str;str=str.substring(int beginindex,int endindex);截取str中从beginindex开始至endindex结束时的…

select默认下拉箭头改变、option样式清除

谷歌、火狐、ie下 select 的默认下拉箭头图标差别还是比较大,一般我们都会清除默认样式,重新设计箭头图标; /* --ie清除--*/select::-ms-expand{ display: none; }/* --火狐、谷歌清除--*/select{appearance:none; -moz-appearance:none; -…

Leetcode--15. 三数之和

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums [-1, 0, 1,…

他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能

来源:AI科技评论编译 :陈彩娴近日,有一篇发表在arXiv的论文“Deep Learning and the Global Workspace Theory”提出了一个大胆的猜想(或理论)。两位作者认为,当下的深度学习已经可以基于一个意识模型&…

python调用jar 性能_亲自有效---python 调用jar

#-*-coding:utf-8-*-import jpypefrom jpype import *import os.pathjarpath os.path.abspath(‘.‘)#这个函数用来获取当前 python 脚本所在的绝对路径aajarpath ‘\JpypeDemo.jar‘print(aa)jvm_path jpype.getDefaultJVMPath() #获取当前系统JDK的路径print(jvm_path)# s…

计算机网络-奈氏准则

假定某信道受奈氏准则限制的最高码元速率为20000码元/秒。如果采用振幅调制,把码元的振幅划分为16个不同等级来传送,那么可以获得多高的数据率(b/s)?答:CR*Log2(16)20000b/s*480000b/s (C是速据…

Leetcode--80. 删除排序数组中的重复项Ⅱ

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums [1,1,1,2…

科学史上那些盛极一时的“著名理论”是如何被攻破的?

《雅典学院》名画中的亚里士多德和柏拉图来源 :《自然》百年科学经典制版编辑: Morgan在科学发展的过程中,曾经涌现出不少盛极一时而后被证明是错误的理论。这些理论有的也许在今天看来悖谬荒诞,但是从整个科学发展的过程来看,它们仍然有其作…

Cluster - LB - haproxy

sd 转载于:https://www.cnblogs.com/aftree/p/9219435.html

Leetcode--1004. 最大连续1的个数Ⅲ

给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。 返回仅包含 1 的最长(连续)子数组的长度。 示例 1: 输入:A [1,1,1,0,0,0,1,1,1,1,0], K 2 输出:6 解释: [1,1,1…

java 按钮 颜色_改变按钮颜色的java事件,个人成果!

import java.awt.*;import java.awt.event.*;public class Eventest{Button btn1new Button("单击");Frame myframenew Frame("测试单击事件");public void init(){btn1.setSize(30,26);btn1.addActionListener(new ActionListener(){public void actionPe…