在第一期的课程中我们介绍了使用 exe4j 将 jar 包包装成 exe 的方法(将 JAR 转为 EXE(第一期) – exe4j 的使用教程 – http://www.iteknical.com/convert-jar-to-exe-phase-i-exe4j-tutorial/)。这一期我们要做的还是打包成 exe,只不过是使用另外一个工具:Jsmooth

Jsmooth 是作为一个同样是将 java 程序 Windows 化的工具,和 exe4j 不同的是,Jsmooth 是一个 sourceforge 上的开源项目,而 exe4j 是一个商业软件(记得上次使用时需要序列号吗?)。在 Windows 化的功能上,完全不比商用的 exe4j 差。

准备工作

和上一期的准备工作一样,需要将工程导出为 jar 包,这里就不再赘述。

[image align=”center” width=”one_half” lightbox=”true”]https://tqqarq.dm2301.livefilestore.com/y2pc2wrjlFiwxfOfGu1fylBElGEOFmXNJdsBeO5q0cd7v_hQklFf_SlX4u4BXBIyjaQijOVKOVYcWaNrdhBTItERLQbS-WJcdQtVPmkYsPBsn4/1.png[/image]

Jsmooth 使用教程

首先下载 Jsmooth,可以从其官方网站上获取:http://jsmooth.sourceforge.net/

也可以从这儿下载中文版的(官方是英文版,两者版本号相同):http://pan.baidu.com/s/1jG3Lgk2 密码: tq29

下载解压后打开 jsmoothgen.exe,界面如下(我使用的是中文版):

[image align=”center” width=”one_half” lightbox=”true”]https://tqsbuq.dm1.livefilestore.com/y2pKrkb07z9sa6KPJrg23EllLw3gp_CLqVZz1MT2x2yzuwDOHpfnseKbB5_E4WfMXch_FLbcunVA1-ETxGPF2LWSfzNgjaUhmTm_YK3TBZIl30/2.png[/image]

直接点击左边的骨架开始,在上面选择骨架上下拉有 5 个选项,其中最常用到的有 WinService Wrapper(Windows服务)、Console Wrapper(控制台程序)和 Windowed Wrapper(窗体程序)。这里由于例子打包的是 SWT 的项目,使用的是 Windowed Wrapper。

[image align=”center” width=”one_half” lightbox=”true”]https://tqrl0a.dm1.livefilestore.com/y2pIp2jB2_SeXBVxIf_6mQNWz8TGM48uasAAFntRANymJch-nQC5pZplG3WQhtHRAKi8DYLvYuiJoO6imKzI3hIRoO4jOBQDkbGXDmGfEE3T7A/3.png[/image]

在下面骨架属性配置的是没有 Java 时的安装提示等配置。为了使生成后的 exe 运行时进程不会出现 javaw.exe,把在 EXE 进程内启动 Java 应用勾选上。

[image align=”center” width=”one_half” lightbox=”true”]https://thpira.dm2302.livefilestore.com/y2pCI69JrfipF1bSE9brjAJyXgbTksqXxEy6x1TfWP5lXOO1MctyMbg6jTnzthYRv7kowQNzmoRqhG9SYvZSyIC81GnmvJQjqJy0eOl7yiBAyw/4.png[/image]

在可执行文件的配置中,主要包括生成 exe 的文件名、图标和工作目录的配置,在此我们配置如下:

[image align=”center” width=”one_half” lightbox=”true”]https://thqtzw.dm1.livefilestore.com/y2pTkjNI0TQab2iia55Xp8YKhkCYotmPmhM9dLwHS2GKH16SvZwc6AjsmN4zRWtbi5kresKbLABGnTKmpGbXq-ZiSxz3kKbL3LBhnM51Flirjo/5.png[/image]

在应用程序中,先在下方 Classpath 中添加所有需要的 jar 包(包括第三方 jar 包):

[image align=”center” width=”one_half” lightbox=”true”]https://tqqhwq.dm2301.livefilestore.com/y2p6Yz0y3oGayiLZRzhLRx-zoaPLMXxvtHJk0EGAwELfi9oX5urUoIJgQgM3Lt393PXLYNFNrwS8Ou0TUTCPoFUSBEWc2bZvUAovfT_cp0EomM/6.png[/image]

然后再选择运行时的主类

[image align=”center” width=”one_half” lightbox=”true”]https://tqs8zq.dm2301.livefilestore.com/y2pRS5p6Jq7AFRZRStR4B3KVsj_Re–la6KH1tpceOSu4ycRKcOo7uc32O7J-MxXlbQRtL9txGXwY6Cu9YaovaoCzduxnDMe3U3ZdtIaYbBMCM/7.png[/image]

在 JVM 选择中,可以配置运行所需要的 Java 版本以及自定义 JVM 的位置,这里的设置和 exe4j 很像,就不再赘述:

[image align=”center” width=”one_half” lightbox=”true”]https://th8juq.dm2301.livefilestore.com/y2pTBocohLr6rtzTgFa7Hie1d39rq-tEFZSKagloZd_z1e1E-U7QoflkKpb0cfy6myfRuyIeCwcBzBA_wRIRlshUSBem2qOWGYt7_mBVAYs62s/8.png[/image]

一切配置完成,点击菜单中的项目-编译…,生成 exe:

[image align=”center” width=”one_half” lightbox=”true”]https://tqq2lg.dm2301.livefilestore.com/y2pjyb5z-J74HrjghESxtcyLdpS9p0fBp84bIy4M-ftY6azZDgmrXb-AN8H8czSK0J7a3xCXhfSiF_vVcaT6HP4S39qJMnGZQIa7jWV08YvBfI/9.png[/image]

可以打开生成的 exe 看看效果:

[image align=”center” width=”one_half” lightbox=”true”]https://th9sww.dm1.livefilestore.com/y2p94ZULuQODj_NSa9nSVJLZrLDIWA_6u5d0aeItRU73PqmyWPeDLKGGjO287_4a8HOK57Chsyaz1z6Ov-1CIe9WA4Hi6yUPZwespHlWxJJp4w/10.png[/image]

值得注意的是,生成好的 exe 运行时在同一目录下必须要包含运行所需的第三方 jar 包的文件夹,通常命名为项目名_lib。这一点和 exe4j 可以完全生成一个独立的 exe 还是有所不同的。

留下一个答复

Please enter your comment!
Please enter your name here