`
sha851092391
  • 浏览: 73856 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java安装程序制作

    博客分类:
  • Java
阅读更多

对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre、jre版本、jre在哪里下载、如何用jre启动Java应用等等。不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。所以这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处测试”的尴尬。对于固定平台下的Java应用,最好的方式莫过于带着JRE,让用户轻松点击就能运行。下面我们来解决这样的问题。 

  针对windows平台,主要方法是:先将JRE进行精简,再使用工具exe4j 来解决双击运行使用的问题,最后用Inno Setup打包成安装程序, 这样一来,我们的Java应用就和普通的windows应用程序一样了。 

本文相关下载 

本教程PDF格式文档 
http://www.uushare.com/user/javapro/file/1418624 
http://www.rayfile.com/files/7840998c-1824-11de-942b-0014221b798a/ 

本教程示例程序 
http://www.uushare.com/user/javapro/file/1418316 
http://www.rayfile.com/files/3ee1f95c-1826-11de-bcfb-0019d11a795f/ 

exe4j 4.2 注册版 
http://www.uushare.com/user/javapro/file/1418327 
http://www.rayfile.com/files/c56bebba-1826-11de-9b55-0019d11a795f/ 

Inno Setup 汉化增强版 + ISTool汉化 + 反编译套装 + ISFD界面设计汉化 
http://www.uushare.com/user/javapro/file/1418305 
http://www.rayfile.com/files/95c91dd9-1826-11de-89b1-0019d11a795f/ 

一、精简JRE 

  JRE6默认安装大小大约90M,而一般程序只有几M甚至几百K,带JRE运行,感觉非常不合理,分发与网络传输过程也会大受影响。关于JRE的精简参照下面几篇相关文章: 

Java程序发布之jre篇 
http://www.blogjava.net/gdws/archive/2006/12/25/89898.html 
如何制作最小的RCP程序压缩包(包含JRE) 
http://www.eclipseworld.org/bbs/read-cec-tid-5777.html 
让Java程序带上精简的jre(附工具) 
http://glemir.xplore.cn/archives/200 
JRE极限精简探求手册[1]——精简一个Swing的即时战略游戏 
http://cping1982.blog.51cto.com/601635/129630 
Java应用——精简JRE体积的小工具 
http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx 
JVM rt.jar 精简工具图形外壳 0.1 
http://www.blogjava.net/beansoft/archive/2008/12/19/247321.html 
可以运行 RCP/Swing 的迷你JRE 6(3.75MB) 
http://www.blogjava.net/beansoft/archive/2008/01/18/176353.html 
可以运行SWT的精简版JRE 1.4.2_04, 压缩后仅1.3MB 
http://www.blogjava.net/beansoft/archive/2007/03/07/102381.html 
  总得来说JRE精简是一个比较复杂的工作,如果不清楚某部分的功能不要轻易进行删减,否则可能产生一些未知的错误。pack200压缩工具在对某些重新打包过的rt.jar文件压缩时会产生错误,如果使用的话一定要注意控制台的输出信息。 

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

  下面是我的一个完整Java示例程序 —— TestProcessBar。可以看到示例程序已经附带了jre , 下面先使用exe4j给它制作一个exe可执行文件(即图中的TestProcessBar.exe),并指定我们自带的jre 。 


 


以下是exe4j的启动界面,点击Next开始创建配置文件。 



 



接着选择要创建的exe文件类型,在这里我们选择第一个,这样其实是为程序创建一个可以双击运行的启动器,可以保证程序仍具有跨平台的特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。 


 


接下来设置程序的短文件名,源文件夹路径(可以使用exe4j工程文件的相对路径。这里我的exe4j文件保存在launcher目录下,所以使用的源路径为[..],即上一级目录),以及要生成的exe文件的存放目录,exe存放目录相对路径为源文件夹,这里我把它指定为当前源文件夹。 


 


接下来,可以给我们即将生成的exe文件起一个名字,如我的“TestProcessBar.exe”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图: 


 


这里我们还可以为要生成的exe文件附加一些信息 


 


接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径: 


 


基本上我们所需要用到的jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使程序能够随处运行,强列建议使用相对路径,并且不要使用环境变量。添加好类路径之后回到上一步去选择"Main Class"即可。 


 


接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以有必要把我们自带的jre指定为首选的运行环境,如图选择Search sequence 


 


默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了(如果觉得有必要的话可以把默认的选项放在自带jre选项的后面,不删除),然后添加我们自己的jre所在的目录路径,点+号开始: 


 


这里还是建议使用相对的目录路径: 


 


指定jre所在的目录,如图: 


 


最后我的jre目录路径就是这样的:.\jre 


 


下面这一步启动画面,有兴趣的可以自已设置一下。 


 


程序最终生成了这个执行文件: TestProcessBar.exe 
现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有近19M的大小。 
这时候打个压缩包,已经可以进行发布了。但是为了更大的压缩,并制作更加方便易用的程序,下面我们使用Inno Setup进行压缩并制作一个安装包。 


 



三、使用Inno Setup为程序制作打包安装程序 

安装后启动脚本向导,如图所示: 



 

 



这里指定程序的启动文件,即刚才用exe4j创建的exe文件。然后将整个程序目录都包含进去就可以了(这里因为程序中有一些exe4j和inno setup的工程文件,故有所选择),接下来的基本上一直按下一步就可以了,其中要设置一下安装程序的输出目录,直到脚本向导完成 




 

 


 



然后执行该脚本即可: 


 

 




然后找到Inno Setup的输出目录,就可以看到编译输出后的安装包了,如下图:setup.exe 
大小已经压到了6.38M。 


 


利用这个就可以快速轻松的安装你的Java桌面应用了。 


 



四、总结 
  总体来讲,我们的目的是为了让我们编写出的程序更加的方便易用。通过以上的学习,现在我们已经可以制作出可双击运行、不用用户另装jre的、简单易用的程序安装包。大家可以对jre精简、exe启动器的制作、打包安装进行更深入的学习。本教程中的工具只是做一个抛砖引玉,还有很多类似功能的工具有待大家去研究,最后,希望大家能够制作出属于自己的简单明快的一键式Java程序。 

 

转载于:http://www.blogjava.net/javapro/archive/2009/03/24/JavaAppSetup.html

分享到:
评论

相关推荐

    一键安装双击运行——Java安装程序制作(PDF)

    在提供的PDF文档《一键安装双击运行——Java安装程序制作》中,会详细阐述以上步骤,并可能提供实际示例和代码片段,帮助开发者更好地理解和实践这个过程。通过学习这份资料,开发者不仅可以学会如何制作Java安装...

    exe4j innosetup greenJvm安装文件-Java安装程序制作工具

    在这个场景中,isetup-5.3.11.exe就是Inno Setup的安装程序,用于搭建Java程序的安装环境。 【Green JVM】是一个辅助工具,它旨在优化Java应用程序的运行效率,尤其是对于那些不需要完整JVM环境的轻量级应用。...

    IzPack--强大的Java安装程序制作软件

    izpack是一个用于解决安装程序制作的Builder工具;通过izpack制作的安装程序可以运行于不同的操作系统,Windows, Linux, Unix等,只要安装了JDK1.4以及其后版本即可;izpack优秀的模块化设计可以允许你定制安装程序...

    制作Java安装程序.doc

    总的来说,开源工具为Java应用的安装程序制作提供了经济、高效且灵活的解决方案。通过熟练运用如JSmooth、IzPack等工具,开发者可以轻松创建出满足不同需求的安装程序,从而提高用户体验,促进Java应用的部署和分发...

    InstallShield 制作安装程序(java web程序)

    在IT行业中,制作安装程序是软件发布的重要环节,它使得用户能够方便地在计算机上部署和运行应用程序。本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java...

    制作Java安装程序JAVA语言

    制作Java安装程序

    制作JAVA桌面应用安装程序

    制作JAVA桌面应用安装程序.也可借鉴网址http://old.blog.edu.cn/user3/oaiei/archives/2006/1535772.shtml

    Java项目制作可执行程序与安装程序_java_

    4. **Inno Setup**: Inno Setup是一款免费的安装程序制作工具,广泛用于创建Windows安装包。通过Inno Setup,开发者可以定制安装界面、设置安装选项、管理文件复制等,生成专业级的安装程序。在这个项目中,Inno ...

    java 安装程序部署 exe4j

    5. **错误处理**:当Java程序运行出错时,exe4j可以提供友好的错误提示界面,帮助用户解决问题。 **Inno Setup** 是一个免费的Windows安装包制作工具,它的作用在于: 1. **创建安装向导**:Inno Setup可以生成...

    如何制作Java可执行程序

    总的来说,将Java程序制作成可执行程序或安装程序,需要根据目标平台和用户需求选择合适的方法。无论是简单的JAR运行,还是复杂的安装程序生成,都有相应的工具和技术支持。理解这些方法可以帮助开发者更好地分发和...

    Java安装包程序制作

    Java安装包程序制作是将Java应用转换为用户友好的安装程序的过程,这使得非开发人员也能轻松地在计算机上安装和运行Java应用。这个过程主要包括两个主要步骤:首先,将Java应用程序打包成JAR文件,然后使用特定工具...

    Java项目制作可执行程序与安装程序.rar

    为了将Java项目转换为Windows平台下的EXE可执行程序,我们借助了Exe4j工具,而Inno Setup则用于制作安装程序。以下是这些工具和技术的详细介绍: 1. **JavaFX**:JavaFX是一个用于构建桌面、移动和嵌入式设备的富...

    Java的jar包打包为exe安装程序

    这个过程涉及到Java的可执行文件生成和安装程序的制作。以下将详细介绍这个过程中的关键知识点。 1. **Java应用程序与JAR文件**:Java应用程序通常被打包成JAR(Java Archive)文件,这是一种归档格式,包含了类...

    如何制作Java可执行程序以及安装程序.pdf

    Java 可执行程序和安装程序制作详解 本文主要介绍了 Java 可执行程序的制作方法和安装程序的制作方法。首先,介绍了三种生成 Java 可执行程序的方式:直接使用系统的 J2SE 二进制文件执行、编写脚本、使用第三方...

    小巧的安装程序制作工具

    标题中的“小巧的安装程序制作工具”指的是用于创建软件安装包的轻量级应用程序,这种工具简化了安装程序的制作过程,使得不熟悉复杂编程的用户也能制作出专业的安装程序。描述中提到的“步骤简单,适合大多数安装...

    Java制作记事本程序

    在Java编程语言中,制作一个简单的记事本程序是一个经典的练习,它可以帮助初学者深入理解IO流和Swing图形用户界面(GUI)的设计。在这个项目中,我们将主要关注两个核心部分:读写文件的IO流操作和构建用户交互界面...

Global site tag (gtag.js) - Google Analytics