分享

将 JAR 转为 EXE – exe4j 的使用教程(第一期)

 ada_lib 2014-12-23

在日常开发中,遇到需要将 Java 的 JAR 包转化为可执行文件 EXE 的情况不在少见。一般常见 Java 编写的 Console、AWT、Swing、SWT 等程序。在项目交付时,通常采用 JAR 打包。不过这样会产生几个常见的问题:

  • 使用者不熟悉 JAR 包,拿到手不知道怎么运行(这个最常见);
  • JAR 包是完全开放的,只要使用者有一点 Java 基础,想查看和修改其中的源代码都是非常简单的事;
  • 不利于敏感信息的保密

这个文章系列主要介绍将将 JAR 转为 EXE 的几种最常用工具。

第一期介绍的工具是 exe4jhttp://www./products/exe4j/overview.html),是一个帮助你集成 Java 应用程序到 Windows 操作环境的 Java 可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序。如果你想在任务管理器中及 Windows XP 分组的用户友好任务栏里以你的进程名取代  java.exe 的出现,那么 exe4j 可以完成这个工作。exe4j 帮助你以一种安全的方式启动你的 Java 应用程序,显示本地启动画面,检测及发布合适的 JRE 和 JDK,以及进行启动时所发生的错误处理等。

准备工作

在开始讲两者的使用和对比之前,先准备一个需要转换的 Java 项目。演示以一个新建的 SWT 项目为例:

再新建一个 shell,随便写了一个窗体;

将项目导出为 JAR 包,这里要选“可执行的 JAR 包”,否则导出的 JAR 是没有执行入口的;

在“Lunch configuration”中选择项目的入口类,并自己选择好导出位置;

其中 Library handing 一项要特殊说明一下,此处配置的是第三方 JAR 包的配置方式。其中“Extract required libraries into generated JAR”指的是不对第三方 JAR 包做处理“Package required libraries into generated JAR”指的是将第三方 JAR 包打包到最终生成 JAR 包中;“Copy required libraries into a sub-folder next to the generated JAR”指的是将第三方 JAR 包复制到和生成的 JAR 同一目录的一个子文件夹中。我们这里使用第三种处理方式

导出的 JAR 目录结构如下,至此,准备工作就完成了。

exe4j 使用教程

首先下载 exe4j,可以从这儿下载:

Windows 32 位:http://pan.baidu.com/share/link?shareid=1922223599&uk=1426189689

Windows 64 位:http://pan.baidu.com/share/link?shareid=1923937617&uk=1426189689

exe4j 还包含 Mac OS 版和 Linux 版,可以从其官网获取:http://www./download/exe4j/files

下载完成后安装,可以使用以下几个序列号注册,用户名和公司名可随便填:

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:

第一步 Welcome 的 Open和Reopen 是打开过去的配置文件的,第一次使用直接按 Next 跳过。

接着选择工程类型,选择第二个,可以把程序完全编译成 exe 文件

接着填写应用程序的名字和输出目录

接着一步是配置 JAR 包运行的参数

按从上到下的顺序解释。Excutable type 是指你的程序类型,包含 GUI 程序(包含图形界面的),Console application 是控制台程序,Service 指的是后台运行的服务程序;Excutable name 指的是最终的 EXE 的名字Icon file 可以给你的 EXE 加一个图标Allow only a single running instance of the application 指的是只允许实例化一个应用Fail if an exception in the main thread is thrown 指的是 main 抛出异常的时候终止程序Change working directory to 可以改变工作目录

Advance 设置里面包括:

Redirection,用来重定向错误文件和输出文件的路径;

Service opition,以服务启动的相关设置;

Version info,软件的版本信息;

32-bit or 64-bit,生成 32 位或者 64 位的 EXE;

Execution level,软件的运行级别;

配置完成后进入 Java invocation;

在 Class path 里面添加生成好的JAR包,点击右边的加号;

添加所有的 JAR 文件至 Class path,包括lib文件夹中的第三方 JAR,完成后如下:

在下面 Main class 中设置好程序的入口和参数

接着配置好 JRE 的参数

高级选项里面 Serch sequence 和 Preferred VM 是设置 JRE 的查找顺序,可以用来定义程序使用的非使用者的JRE等设置。

Splash sceen 故名思意就是程序刚开始的闪屏

Message 中主要包含程序消息、错误信息的国际化和自定义

万事具备,生成可执行文件:

看到这一步,就说明生成成功了

运行一下看看效果:

从进程里也可以看出,运行的是 SwtDemo.exe,不再是 javaw.exe 了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多