首页 > 编程知识 正文

360安装包双击无响应(java启动器怎么用)

时间:2023-05-04 02:59:23 阅读:66895 作者:2195

如果您喜欢这些文章,欢迎点击此处订阅本Blog

script type=' text/JavaScript '/scriptsrc=' http://page ad2.Google syndication.com/page ad/show _ ads.js '

标题:单击安装双击执行——Java安装程序创建

作者: Jason Du杜

时间: 2009-3-23

原文:http://www.blogjava.net/Java pro/archive/2009/03/24/javaappsetup.html

对Java桌面APP应用程序来说,麻烦的是安装部署问题,包括客户端上是否安装了jre、jre版本、jre从何处下载以及如何在jre上启动Java APP应用程序不用说是刚接触电脑的人,就算是熟悉电脑的人,如果没有接触过Java,面对Java APP,怎么在Windows上启动它,我想也会辛苦半天。 所以这是Java桌面APP被一些人讨厌的最大原因。 Java的优势是“一次写,处处运行”。 跨平台的特性确实很好,但不是每个人都需要跨平台。 此外,JVM平台和版本问题也可能导致“一次写,处处测试”的尴尬。 对于固定平台上的Java APP应用程序,最好的方法是拥有JRE,以便用户可以方便地单击和执行。 解决这样的问题吧。

对于windows平台,主要方法是精简JRE,然后使用工具exe4j解决双击执行问题,最后用Inno Setup打包到安装程序中。 现在,我们的Java APP应用程序将与常规windows APP应用程序相同。本文相关下载

本教程的PDF格式文档

33558 www.uushare.com/user/Java pro/file/1418624

33558 www.rayfile.com/files/7840998 c-1824-11de-942 B- 0014221 b798a /

本教程中的示例程序

33558 www.uushare.com/user/Java pro/file/1418316

33558 www.rayfile.com/files/3e1f95 c-1826-11de-bcfb-0019 d 11 a 795 f /

exe4j 4.2注册版

33558 www.uushare.com/user/Java pro/file/1418327

33558 www.rayfile.com/files/c56be BBA-1826-11de-9b55-0019 d11a 795 f /

Inno Setup汉化强化版ISTool汉化反编译包ISFD接口设计汉化

33558 www.uushare.com/user/Java pro/file/1418305

33558 www.rayfile.com/files/95 c 91d d9-1826-11de-89 B1-0019 d 11 a 795 f /

一、简化JRE

JRE6的默认安装大小约为90M,但典型的程序只有几米到几百k。 带JRE运行非常不合理,对分发和网络传输过程也有很大影响。 有关简化JRE的信息,请参阅以下相关文章。

Java程序发行的jre篇

3358 www.blogjava.net/gdws/archive/2006/12/25/89898.html

如何创建包含JRE的最小RCP程序压缩包

33558 www.eclipseworld.org/BBS/read-CEC-tid-5777.html

让Java程序带上紧凑的jre (带工具)

3358 glemir.xplore.cn/archives/200

JRE极限简化探究简化手册[1]——Swing实时策略游戏

3358 cping 1982.blog.51cto.com/601635/129630

用于简化Java APP应用程序——JRE卷的小工具

3358 blog.csdn.net/cping 1982/archive/2008/09/02/2865198.aspx

JVM rt.jar精简工具图形案例0.1

3358 www.blogjava.net/beansoft/archive/2008/12/19/247321.html

可以运行RCP/Swing的迷你JRE6(3.75MB )。

3358 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程序。

 


<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>


<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>


<script src="http://www.google.com/reader/ui/publisher.js" type="text/javascript"></script> <script src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p(%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D)%3Bnew%20GRC" type="text/javascript"></script>

 

评论

精简JRE这块不错,不过如果有工作来直接程序运行所有过程中所用到的jar全部提取并精简化那就更好。不过好像有协议约束,不允许JDK删减。 2009-03-24 14:40 | witbrave

@witbrave
GreenJVM可以实现这个功能,但是不能很好的实现,一般都要自己手动修正需要的class
http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx
http://www.blogjava.net/beansoft/archive/2008/12/19/247321.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。