http://blog.csdn.net/luoweifu/article/details/7628006/

一、用Eclipse生产Jar文件

首先,看一下我的项目的目录结构:

1,项目名字上面点右键,选择Export,在选择java\JAR file,下一步;如下图:

(2),选择,src文件夹,.classpath和.project可以去掉不选。Select the export distination(选择输出路径),下一步。

(3),去掉Export class files withcompile errors(编译错误时也输出class文件)的选项,单击下一步。

(4),在main class中选择含有main方法的类,单击finish。

(5),可能会出现警告JAR export finished with warings, see details for additional information.选择OK。

(6)、可能会出现的错误

如果以上过程都能胜利完成,恭喜你,这一过程完成了,生成个jar文件成功!但是有时候在第(4)后会出现错误,如:

此时,课通过以下方法解决:

1)检查项目下的bin文件夹下的文件是否完整,打成jar包的过程实质上是将项目下bin文件夹下的文件(class文件,图片,jar包等文件)压缩成jar包。打开项目的目录结构你会发现:在src文件夹下有的文件在bin文件夹下都一个一样的副本(.java文件对应的是.class文件)。
2)、刷新项目,选择要打包的项目,右击鼠标,选择refresh。作用是可能更改了的内容没有及时复制到bin文件夹下。
3)、在项目的目录下,和src同级建一个META-INF文件夹,
里面建立一个METAINF.MF,
里面指定main-class以及程序运行相关的代码,

我写的代码是:

Manifest-Version: 1.0

Main-Class: execute.Structure

Class-Path: .lib/jfreechart-1.0.1.jar lib/liquidlnf.jar lib/nimrodlf-1.0b.jar lib/substance.jar

//导入的包的路径

Created-By: loweifu

在第4步中选择Use exiting manifest from workspace,如下图:

二、使用exe4j生可执行的.exe文件

能够生成.exe文件的软件有很多,自己去查一下,我这里只用 exe4j,先去下载一个exe4j并安装。假设你的项目已经胜利打包成jar文件,那么就可以进行下面的操作了。

首先,在任意目录创建一个文件夹,最好命名和项目名相同,我在E盘创建了一个“DataStructure”文件夹,之后将所有的资源文件以及我们生成的可执行jar文件(我的DataStructure.jar)都拷贝到这个文件夹里, lib目录,如果你要使对方计算机在没有安装JDK的情况下也能使用该程序,就需要将自己机器上的jre目录也拷贝进来,我安装的jre6,最后的目录结构如下:

1、如果你有保存过的项目打包配置文件,那么点>>open打开点击next。

2 、Project type-选择打包方式

选择“jar in exe”

3、 Application info-配置生成的应用程序的信息

选择你的应用程序的名称和将要生成的可执行文件的输出文件夹。然后>>next.

4、Executable info -配置可执行文件的参数

如果只允许生成的exe文件同时只能打开一个程序运行,则把 “Allow only a single running instance of the application”这项的选择钩上。“Icon File”项表示生成exe文件后的图标,选择一个“.ico”格式的图片。点击next

5、java invocation-配置运行环境

在class path框下清除原有的class path路径,点击右侧的”+”选择打包好的jar文件

(1)、在Archive中选择要导入的jar文件,如下图:

点击“OK”,结果如下:

(2)、在Main class中选择入口类,即含有main函数的类。

之后点击next

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

6、jre-配置jre【以下(1)、(2)点很重要】

在Minimum和Maximum中分别填写所允许的最小和最大JDK的版本号。

如果要在这个程序中捆绑jre,则进入Configure search sequence选项:

(1)、将Search Windows registry保留,如果没有该项,请点击绿色“+”,选择“search registry”,然后点击“OK”如下图;

(2)再把其它的所有的directory删除,特别是如果有“JAVA_HOME”或“JDK_HOME”的话一定要删除,因为他会保存你本机的JAVA_HOME地址,安装时会出现路径找不到的错误;

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

选择刚刚拷贝好的jre如:

在preferred VM中选择一种-选择虚拟机类型,我选择的是 Default VM。

7、接下来没有什么特别重要的配置了,可根据需要自己去选一些参数,也可以直接next,next,知道完成。

8、可能出现的问题

生成exe文件之后可能每次打开都会出现提示框:this executable was created with an evaluation version of exe4j

这是因为你还没有注册exe4j软件,注册之后就不会有提示了。网上搜的一个注册码:L-g782dn2d-1f1yqxx1rv1sqd。

三、将自己编写的程序制作成能在Windows下安装的软件

首先,自己去下一个Inno setup,安装很简单,就不用说了,直接根据提示安装。下载链接:http://www.crsky.com/soft/7195.html#down

Inno Setup是一个免费的 Windows安装程序制作软件,我用的是Inno Setup v5.4.3。

方法一:

1、编辑脚本程序

我的脚本程序如下:

[Setup]
AppName=数据结构演示程序
AppVersion=1.5
DefaultDirName={pf}\DataStucture
DefaultGroupName=DataStucture
;UninstallDisplayIcon={app}\MyProg.exe
OutputDir=D:\java

[Files]
Source: "E:\DataStructure\jre\*"; DestDir: "{app}\jre"
Source: "E:\DataStructure\jre\bin\*"; DestDir: "{app}\jre\bin"
Source: "E:\DataStructure\jre\bin\client\*"; DestDir: "{app}\jre\bin\client"

Source: "E:\DataStructure\jre\lib\*"; DestDir: "{app}\jre\lib"
Source: "E:\DataStructure\jre\lib\audio\*"; DestDir: "{app}\jre\lib\audio"
Source: "E:\DataStructure\jre\lib\cmm\*"; DestDir: "{app}\jre\lib\cmm"
Source: "E:\DataStructure\jre\lib\deploy\*"; DestDir: "{app}\jre\lib\deploy"
Source: "E:\DataStructure\jre\lib\ext\*"; DestDir: "{app}\jre\lib\ext"
Source: "E:\DataStructure\jre\lib\fonts\*"; DestDir: "{app}\jre\lib\fonts"
Source: "E:\DataStructure\jre\lib\i386\*"; DestDir: "{app}\jre\lib\i386"
Source: "E:\DataStructure\jre\lib\im\*"; DestDir: "{app}\jre\lib\im"
Source: "E:\DataStructure\jre\lib\images\cursors\*"; DestDir: "{app}\jre\lib\images\cursors" 
Source: "E:\DataStructure\jre\lib\management\*"; DestDir: "{app}\jre\lib\management"
Source: "E:\DataStructure\jre\lib\security\*"; DestDir: "{app}\jre\lib\security"

Source: "E:\DataStructure\jre\lib\zi\*"; DestDir: "{app}\jre\lib\zi"
Source: "E:\DataStructure\jre\lib\zi\Africa\*"; DestDir: "{app}\jre\lib\zi\Africa"

Source: "E:\DataStructure\lib\*"; DestDir: "{app}\lib"
Source: "E:\DataStructure\DataStructure.exe"; DestDir: "{app}";
                                                                                  
[Icons]
Name: "{group}\DataStructure"; Filename: "{app}\DataStructure.exe"

接下来稍微解释一下:

[Setup这个段包含用于安装程序和卸载程序的全局设置。

AppName(要安装的)程序名称

AppVersion程序版本号

DefaultDirName安装时默认的文件夹

DefaultGroupName快捷菜单或开始菜单的默认文件夹

OutputDir安装程序的输出路径

[Files]这是定义安装程序安装文件到用户系统中的可选文件段。

Source资源文件

DestDir文件安装到用户系统中的目录。

[Icons]这个可选段定义所有创建在开始菜单和/或其它位置 (比如桌面)的快捷方式。

Name要创建的快捷方式的名字和位置。

Filename捷方式的命令行文件名,通常用一个目录常量开头。

2、编译

编辑好脚本程序之后选择“构建”\“编译”完成后即可。

方法二:

选择"文件"/"新建",打开''Inno Setup脚本向导"创建新的脚本文件。

   

根据提示一步一步来,这个很单间,我就不多说了。

到此,自己写的程序及完全包装好了,宛如一个完整的软件。“哎,自己简直就是一个软件工程师啊!:-D :-D”哈哈……开个玩笑!

Java程序如何生成Jar、exe及安装文件的更多相关文章

  1. Visual Studio 编译Winform程序不生成.vshost.exe和.pdb文件的方法

    问题:使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 先解释一下各个文件的作用: .pdb文件: ...

  2. Java程序如何生成Jar 执行文件(2)

    一.用Eclipse生产Jar文件 注意:此方法可以打包含有第三方jar包的项目 1. 首先,右键你的Java工程,选择Export,在Java文件夹下选择Runnable JAR file,如下图所 ...

  3. Java程序如何生成Jar 执行文件(1)

    一.用Eclipse生产Jar文件 注意:此方法只能打包简单程序,不包含含有第三方jar包的项目 首先,看一下我的项目的目录结构: 1,项目名字上面点右键,选择Export,在选择java\JAR f ...

  4. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  5. 用命令行将Java程序打包为jar文件

    如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf MyApp.jar D:Jav ...

  6. Jar中的Java程序如何读取Jar包中的资源文件

    Jar中的Java程序如何读取Jar包中的资源文件 比如项目的组织结构如下(以idea中的项目为例): |-ProjectName |-.idea/  //这个目录是idea中项目的属性文件夹 |-s ...

  7. Visual Studio 不生成.vshost.exe和.pdb文件的方法【转】

    Visual Studio 不生成.vshost.exe和.pdb文件的方法[转] 使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost ...

  8. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  9. 系统重启后,mr程序不生成当前时间段的MRx文件问题

    系统重启后,mr程序不生成当前时间段的MRx文件问题 2019-4-2 之前使用正常的MR程序,系统重启后无法生成MRE\MRO\MRS文件. 服务器有两个时钟:硬件时钟和系统时钟 硬件时钟从根本上讲 ...

随机推荐

  1. 使用Linq快速的操作XML

    开始内容之前先分享一段话 有时候,当你知道要做什么的时候就做的很快,比如你要实现个功能,码字的活儿不算很难,做个检索也不会有什么难倒你的.但是,做着做着,你发现好像世界上的工作都在重复,于是你有种心要 ...

  2. 如何在 Arch Linux 中安装 DNSCrypt 和 Unbound

    DNSCrypt 是一个用于对 DNS 客户端和 DNS 解析器之间通信进行加密和验证的协议.它可以阻止 DNS 欺骗或中间人攻击. DNSCrypt 可用于大多数的操作系统,包括 Linux,Win ...

  3. a标签的css样式四个状态的设计

    表示所有状态下的连接 如 a{color:red} ① a:link:未访问链接 ,如 a:link {color:blue} ② a:visited:已访问链接 ,如 a:visited{color ...

  4. bzoj 1816: [Cqoi2010]扑克牌

    #include<cstdio> #include<iostream> using namespace std; ],ans; bool pan(int x) { int a1 ...

  5. HDU 1560 DNA sequence A* 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=1560 仔细读题(!),则可发现这道题要求的是一个最短的字符串,该字符串的不连续子序列中包含题目所给的所有字符串 ...

  6. C语言中 scanf 和 printf 的小要点

    1 scanf_s需指定%c 个数 h short l long关键字 * 不赋给任何值 W 指定读入宽度 转换字符 a 读浮点值(c99) A 读浮点值(c99) c 读单字符 d 读十进制数 i ...

  7. Program E-- CodeForces 18C

    Description Once Bob took a paper stripe of n squares (the height of the stripe is 1 square). In eac ...

  8. navtab方法参数以及事件

    参数(options) DOM方式初始化navtab的,推荐使用集合属性data-options定义参数,如果使用data属性定义参数,注意转换成对应的名称. 名称 类型 默认值 描述 id stri ...

  9. 有关PHP的字符串知识

    字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性. 字符串型可以用三种方法定义:单引号形式.双引号形式和Heredoc结构形式. 1.每条指令可要记得使用 ...

  10. JAVA调用系统命令或可执行程序--返回一个Runtime运行时对象,然后启动另外一个进程来执行命令

    通过 java.lang.Runtime 类可以方便的调用操作系统命令,或者一个可执行程序,下面的小例子我在windows和linux分别测试过,都通过.基本原理是,首先通过 Runtime.getR ...