前言:

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

准备:

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

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

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

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

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

一切默认,点击“Next”

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

我的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目录,如果你怕执行该程序的机器上没安装jre,那么你需要将自己机器上的jre目录也拷贝进来,我安装的jre5,最后的目录结构:

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

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

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

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

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

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

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

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

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

输入Java最小Jre版本号,即低于这个版本的Jre无法运行该程序,接着点击“Advanced Options”-“Search sequence”,设置一下我们的JRE,之前说过,如果客户机上没装Jre咋办?,没关系我们捆绑一个进去

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

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

JRE捆绑完毕,点击“Next”

默认,点击“Next”

默认,点击“Next”

默认,点击“Next”

exe生成中

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

看看成果如何吧!

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

java桌面项目打包_by icewee_写得太棒了,直接转载了的更多相关文章

  1. java桌面程序打包教程

    首先打包成j可执行的jar文件. . 接下来找到自己生成jar文件的路径就可以看到jar文件了,我的是在桌面: 在桌面新建一个文件夹(名字随便取,一般去项目名字) 上面是我取的文件夹名字,然后把资料文 ...

  2. Java桌面程序打包成exe可执行文件

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

  3. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

  4. IDEA如何把写好的java文件/项目打包成一个jar的文件

    一.命令行的方法 打开cmd,输入jar -cvf [打包后的文件名].jar [要打包的目录]. 二.IDEA的方法 写完一个java程序把它封装成一个jar的包  这样就可以在别的jar上面运行这 ...

  5. JAVA SpringBoot 项目打包(JAR),在打包成 docker 镜像的基本方法

    1,打包 SpringBoot 项目,使用 IDEA 如下图 2,将 JAR 包上传到安装了 Docker 的 linux 服务器上,并且在相容目录下创建一个名为 Dockerfile 的文件 3,在 ...

  6. Java Web 项目打包脚本

    可用于 (但不限于) Eclipse 项目. 一次性生成:1. Java doc .zip 包:2. Java 源代码 .zip 包:3. Java 二进制文件 .jar 包:4. Java 源代码加 ...

  7. java普通项目打包成可执行jar文件时如何添加第三包

    在java的web项目中,引用第三方包的时候非常简单.因为在web项目上中,默认有一个web-inf文件夹.web-inf文件夹下有一个lib文件夹,如果有用到第三方包,直接丢进去就行了.但是对于普通 ...

  8. [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具

    作者:HelloGitHub-小鱼干 JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式 ...

  9. java web 项目打包(war 包)并部署

    1.在eclipse中右键单击项目,然后Export选择WAR file,生成项目的WAR文件.具体步骤请看图片详细操作步骤: 2.把生成的WAR文件放到tomcat解压之后的webapps文件夹下. ...

随机推荐

  1. android应用一(调用WebServices)

    搞了一个月的android,现学现卖,终于还是搞完了,停下来,整理思路,写写记录吧. 我们知道android访问远程数据库主要有两种协议,一种是SOAP,另外一种就是HTTP.而我们再看看WebSer ...

  2. PHP制作简单的日历

    在这里分享一个PHP制作的日历 <?php //万年历if($_GET['year']){$year = $_GET['year'];}else{$year = date("Y&quo ...

  3. php 计算一个字符串在另一个字符串中出现的次数

    <?php $text = 'This is a test'; echo strlen($text); // 14 echo substr_count($text, 'is'); // 2 // ...

  4. php 表单的活用

    一般表单都是用过POST 方式对数据进行隐秘的传输用, 可以偶尔你也会发现这样的用法,表单不止能够进行隐秘的传输.还能够进行URL的传输,并且是同时进行的 提交页面,在action 后面加了URL后缀 ...

  5. OpenXML: Asp.net利用OpenXML 导出Excel.

    http://www.cnblogs.com/skyfei/archive/0001/01/01/Openxml.html

  6. Android常用错误解决汇总

    一.No active compatible AVD's or devices found. Relaunch this configuration after connecting a device ...

  7. 第一节 WCF概述

    主要内容: 1.什么是WCF? 2.WCF的背景介绍. 引例:(WCF用来解决什么事情) 一家汽车租赁公司决定创建一个新的应用程序,用于汽车预定 • 该租车预定应用程序的创建者知道,应用程序所实现的业 ...

  8. Performance tuning library cache lock & single-task message

    My colleague suddenly encountered a problem today,a Database becomes very slow , and the a lot of se ...

  9. iOS崩溃报告获取一

    在AppDelegate.m文件中实现函数 void UncaughtExceptionHandler(NSException *exception) { /** * 获取异常崩溃信息 */ NSAr ...

  10. Java学习----字符串函数

    1.String string类是最终类,不可以有子类 package com.demo.pkg1; public class TestString { public static void main ...