前言
最近公司要将某个CS(client/server)打包成windows可安装程序,将来给客户用,就学习了下整个过程,下面就举个最近的学习例子:
最简单的例子。。!嘻嘻,Java!一下你就能猜到是什么了吧?呵呵,对就是“HelloWorld”这下是不是就有看下去的信息了。

整体流程
1,新建一个Java Project项目,项目名为hello world.
2,然后用Apache ant工具创建build.xml把Java Project打包成jar文件
3,用Launch4j软件把Jar文件生成exe文件
4,用NSIS软件把exe文件打包成winddows的可安装程序。
相关软件及链接:

  • Apache ant:http://ant.apache.org/
  • Launch4j:http://yunpan.cn/ccBpsrJCseiLT 访问密码 ca3f
  • NSIS:http://yunpan.cn/ccBpcJC7pUWx5 访问密码 b03d

第一步:新建Java项目
在eclipse,右键->New->Java Project,输入项目名helloworld,就ok了
hello代码如下:

package test.ant;

import javax.swing.JOptionPane;

public class HelloWorld {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Hello World!");
        System.exit(0);
    }
}

简单说下代码,因为这个是个安装之后运行的程序,所以为了看到下过,我用弹出框的形式来显示Hello World,然后运行玩之后,你点击弹出框上的关闭或确定按钮时,会执行”System.exit(0)”这句话就是退出程序的意思,具体里面的”0”参数,如果你非得纠结的话,自己就慢慢研究吧,这里不做细致讲解,最终就是在界面上操作完之后程序会结束,如果没有“System.exit(0)”的话,运行多次程序后,你会在任务管理器中看到多个javaw.exe程序。就是程序在后台运行没有正常关闭。所以,你懂得。加上那句会给你省不少麻烦。

第二步:用Apache Ant工具将java项目打成jar包
首先将eclipse安装上ant插件,一般eclipse也会自带有:装上之后如下图:

JAVA写WINDOWS程序 java怎么写windows程序_JAVA写WINDOWS程序

现在已经有Apache Ant后,我们就可以来用ant来打包我们的helloworld项目吧!
一般我们用ant时,在项目更目录下创建一个build.xml(这个命名不是必须的,但是这个是比较好的命名方式)

build.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">
    <property name="src" value="src" />
    <property name="class" value="class" />
    <property name="helloworld_jar" value="dist/helloworld.jar" />
    <target name="init">
        <mkdir dir="${class}" />
    </target>
    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${class}" />
    </target>
    <target name="build" depends="compile">
        <jar jarfile="${helloworld_jar}" basedir="${class}" />
    </target>
    <target name="run" depends="build">
        <java classname="test.ant.HelloWorld" classpath="${helloworld_jar}" />
    </target>
</project>

虽然本文不是介绍相关技术的,但是为了防止大家看起来一头水雾,简单说下bulid.xml内容,只当是为不了解ant的普及一下知识,精通ant的大牛可以飘过。

这里有project标签的项目。该标签下有多个target目标,这些目标通过依赖关系depends来维系关系,你会发现name为run的target会由上面那些target构成:
run = build+compile+init

Apache Ant简介如下:在百度百科中你会找到他们的身影。

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。
当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发 中每个人使用。Ant构建文件默认名为build.xml,也可以取其他的名字。只不过在运行的时候 把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中。 这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。
(1) src存放文件。
(2) class存放编译后的文件。
(3) lib存放第三方JAR包。
(4) dist存放打包,发布以后的代码。
Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定 义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所 依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调 用所定义的任务。任务定义了Ant实际执行的命令。Ant中的任务可以为3类。
(1) 核心任务。核心任务是Ant自带的任务。
(2) 可选任务。可选任务是来自第三方的任务,因此需要一个附加的JAR文件。
(3) 用户自定义的任务。用户自定义的任务是用户自己开发的任务。

这里因为我们就一个HelloWorld文件,没有引用其他jar包,所以没有lib文件夹,其他都有:

我们在build.xml文件右键->Run As ->Ant Build之后刷新项目会发现项目下多出一些文件,文件夹
刷新前截图:

JAVA写WINDOWS程序 java怎么写windows程序_windows_02

刷新后截图:

JAVA写WINDOWS程序 java怎么写windows程序_打包成_03

说明我们的ant工具已经将项目打成jar包

第三步:用launch4j工具把jar文件转成exe文件
参考:http://yunpan.cn/cc6cFVfjdVbtX 访问密码 56e6

laun4j安装后的效果图

JAVA写WINDOWS程序 java怎么写windows程序_JAVA写WINDOWS程序_04

执行launch4j.exe程序界面如下:

JAVA写WINDOWS程序 java怎么写windows程序_JAVA写WINDOWS程序_05

第一步在Basic页面中:

JAVA写WINDOWS程序 java怎么写windows程序_ant_06


第二步在Classpath页面中:

JAVA写WINDOWS程序 java怎么写windows程序_launch4j_07

第三步在JRE页面中:

JAVA写WINDOWS程序 java怎么写windows程序_JAVA写WINDOWS程序_08


第四步保存配置:

JAVA写WINDOWS程序 java怎么写windows程序_ant_09

那么就在Output file的路径后面加上.exe吧
修改之后再保存

JAVA写WINDOWS程序 java怎么写windows程序_JAVA写WINDOWS程序_10

第五步生成exe文件:

JAVA写WINDOWS程序 java怎么写windows程序_launch4j_11

未完待续