• JAVA程序打包成exe文件详细图解


    我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同。其实将java程序打包成exe也需要这个可执行jar文件。

    准备:

    eclipse、exe4j(网上有软件和帐号下载)

    第一步,将java项目打包成可执行jar文件

    首先看一下我的java project结构,Main.java是程序入口类,里面有main函数,config目录是些配置文件,lib是用到的第三方类库

    clip_image002

    开始打包,Simulate(Java项目)-鼠标右键-Export

    clip_image004

    弹出窗口,选择“JAR file”,点击“Next”

    clip_image006

    取消勾选“config”和“lib”目录,以及eclipse生成的项目配置文件“.classpath”和“.project”,点击“Next”

    clip_image008

    一切默认,点击“Next”

    clip_image010

    在弹出窗口中,选择我们自己创建的MANIFEST.MF文件,点击“Finish”

    clip_image012

    我的MANIFEST.MF文件内容为:

    Manifest-Version: 1.0
    Main-Class: bing.Main
    Class-Path: . lib/ojdbc14.jar lib/poi-2.5.1.jar lib/jbcl.jar lib/JTattoo.jar lib/liquidlnf.jar
    Created-By: IceWee

    通过指定“Main-Class”来达到可执行jar文件的目的。其实我们最终是将项目打包成exe,Class-Path可以不指定,在打包exe的时候还要指定classpath的。

    第二步,将项目打包成exe

    这里要明确一点,并不是把所有的文件都打包成一个exe,资源文件是不能包进去的,往下看↓

    首先,在任意目录创建一个文件夹,最好命名和项目名相同,我在F盘创建了一个“Simulate”文件夹,之后将所有的资源文件以及我们生成的可执行jar文件(我的Simulate.jar)都拷贝到这个文件夹里,config目录和lib目录,为了便于在其他机器上正常运行(我就在这个问题上出错过,所以希望读者可以直接避免),同时将安装的JAVA目录(例如:C:Program FilesJava)下的jre5整个文件夹拷至该文件夹下,最后的目录结构:

    clip_image014

    在打开exe4j之前先注册

    (转自http://wangyali90516.blog.163.com/blog/static/117205101201232641920294/

    exe4j是个很好的打包利器,官方下载地址:http://www.ej-technologies.com/download/exe4j/files.php
    如果你不注册,打包好的软件每次启动都会报:this executable was created with an evaluation version of exe4j ,特烦人,所以最好下载exe4j的破解版,但是有注册码,官方软件毕竟比破解版好用,下面的注册码经测试,均可以使用.
    用户名和公司名可随便填
    A-XVK258563F-1p4lv7mg7sav
    A-XVK209982F-1y0i3h4ywx2h1
    A-XVK267351F-dpurrhnyarva
    A-XVK204432F-1kkoilo1jy2h3r
    A-XVK246130F-1l7msieqiwqnq
    A-XVK249554F-pllh351kcke50
    A-XVK238729F-25yn13iea25i
    A-XVK222711F-134h5ta8yxbm0
    A-XVK275016F-15wjjcbn4tpj
    A-XVK275016F-15wjjcbn4tpj

    打开exe4j,跳过欢迎,直接点击左侧导航的第二项,因为我们已经提前将java项目打包成可执行jar文件了。

    clip_image016

    在弹出窗口,选择“JAR in EXE mode”,点击“Next”

    clip_image018

    在新窗口中,为我们的应用取个名称,之后选择exe生成目录(我的F:Simulate),点击“Next”

    clip_image020

    为我们要生成的exe取名,如果想生成自定义图标,那么选择你的ico文件,如果你不想在一台电脑上运行多个你的程序,你可以勾选“Allow only a single...”,点击“Next”

    clip_image022

    先点击

    点击绿色“+”,设置程序运行的Class Path

    clip_image024

    先选择我们自己的可执行jar文件(我的Simulate.jar),点击OK

    clip_image026

    我们的Simulate.jar就加到Class Path下了

    然后继续:

    clip_image028

    之后点击General中的Main Class选择按钮,在弹出窗口中,exe4j会自动搜索当前Class Path下的全部jar中包含main方法的类,并列出,因为当前我只选择了自己项目的jar,而我的项目中只有Main.jar包含了main方法,所以一目了然,直接选择它点击“OK”,程序入口类就设置完成了

    clip_image030

    Main Class设置完成后,依次将所有需要的第三方类库加到Class Path下,方法同添加“Simulate.jar”一样,点击“Next”

    clip_image032

    输入Java最小Jre版本号,即低于这个版本的Jre无法运行该程序,接着点击“Advanced Options”-“Search sequence”,

    选这个就是因为我们要把 JDK 环境也打包进来,好让程序能跨平台使
    用。首先要从你系统的 JDK 下的 JRE 目录 copy 到你.exe 文件的输出目录下“桌面
    projectJRE” ,然后回到 exe4j 中在弹出窗口删除 列表中的所有项。我的是三项,一个注册
    表的, 一个 JAVA 环境变量的, 一个 JDK 环境变量的, 都不要。 然后单击绿 “+” , 选择 directory
    并选择 JRE 的根目录,我的是“桌面projectJRE”就是 copy 后的目录,选完后 exe4j 弹
    出窗口中的 Directory 里会显示“. JRE” 。点 OK 关闭该窗口,返回 exe4j 的主窗口,你就
    可以看到刚加的路径。再从主窗口左侧窗口中单击 advanced options,并选择 preferred VM ,
    在弹出的窗口中选择 clienthostspot VM,单击 next 按钮继续。

    clip_image034

    点击绿色“+”来选择捆绑的JRE位置

    clip_image036

    在弹出对话框中选择“Directiony”,之后选择JRE的文件夹,注意:这个JRE目录是我们将本机的JRE目录拷贝到当前exe生成目录下的,我的目录是F:Simulatejre5,下图程序使用的是相对目录,点击OK,完成JRE的捆绑操作

    clip_image038

    JRE捆绑完毕,点击“Next”

    image

    选择Client hotspot VM,点击“Next”

    image

    默认,点击“Next”

    clip_image044

    默认,点击“Next”

    clip_image046

    exe生成中

    clip_image048

    OK,完成,点击“Exit”即可

    clip_image050

    看看成果如何吧!

    clip_image052

    我们的可执行jar以及第三方jar总共还不到5M,可jre5目录就50多M,如果目标机器上有JRE环境就可以把它删掉了,lib目录是第三方jar文件,现已打包到exe中了,所以它也没有存在的理由了,那么最小配置就剩下了“Simulate.exe”和“config”目录了!

  • 相关阅读:
    java.sql.SQLException: Io 异常: Got minus one from a read call
    ORACLE 数据库名、实例名、ORACLE_SID的区别
    如何查看oracle的sid
    expdp impdp 数据库导入导出命令详解
    Oracle连接数过多释放机制
    oracle查看允许的最大连接数和当前连接数等信息
    世界是无限的、复杂的、运动的
    世界
    世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
    运动着的物质世界是普遍联系和永恒发展的
  • 原文地址:https://www.cnblogs.com/aligege/p/7346154.html
Copyright © 2020-2023  润新知