研究JDownload源码时,发现Ant打包时用到了nsis。Java程序经常被打成Jar包供他人使用,懂技术的还好,不懂技术就惨了,你要人家去装虚拟机,配置环境变量,运行 java -jar xxx 命令。。。估计还没等你说完,她就放弃了。有没有办法把Java程序也做成傻瓜式的双击运行呢?NSIS就是干这个活的。

追本溯源,看一下NSIS是什么。NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。

安装

安装NSIS,官网下载地址:http://nsis.sourceforge.net/Main_Page。

我非软件NSIS_第1张图片

基本语法

查看官方文档:http://nsis.sourceforge.net/Docs/。

挺简单的,比如一行就是一个命令,如果一行过长,可以用又斜杠 \,切到下一行继续。

EclipseNSIS 插件

http://eclipsensis.sf.net/update

可以装上EclipseNSIS插件,方便开发。

NSIS Ant

https://github.com/dreese/nsis-ant

前面已经提到,可以集成到Ant脚本中,需要NSIS Ant插件。JDownload用的就是这种方式,不过它用的是1.2版本,官网上已经更新到1.3了。


   

NIS Maven

既然有Ant插件,应该也有Maven插件的,一搜果然有:http://mojo.codehaus.org/nsis-maven-plugin/plugin-info.html。

 我非软件NSIS_第2张图片

官网上已经把流程说得很清楚了。

我非软件NSIS_第3张图片

其实就三步,编写NSIS脚本,生成project.nsh,编译。

官网上还有一个示例工程:http://mojo.codehaus.org/nsis-maven-plugin/examples/sample-nsis-project.html。把代码Checkout出来试试。

我非软件NSIS_第4张图片

把Version改下,把Nexus里查到的版本号1.0-SNAPSHOT贴进去。然后运行 mvn nsis:generate-project

我非软件NSIS_第5张图片

接着 mvn nsis:compile

我非软件NSIS_第6张图片

成功了,回到Eclipse刷下工程。

我非软件NSIS_第7张图片

双击运行tidy-2008.5.22.exe。

我非软件NSIS_第8张图片

我非软件NSIS_第9张图片

我非软件NSIS_第10张图片 我非软件NSIS_第11张图片

安装完后,进到安装目录看看。

我非软件NSIS_第12张图片

卸载试试。

我非软件NSIS_第13张图片

卸载完后,目录下的东东都清掉了,倒也不失为tidy的本意,O(∩_∩)O~。

我非软件NSIS_第14张图片

 

 

看完这个例子后,对NSIS之名算是佩服不已,取得太贴切了。Nullsoft,哥不是软件,哥只会包装,\(^o^)/~。