原摘自:https://blog.csdn.net/uikoo9/article/details/7458666

几种jar转exe方法的比较
2012年04月13日 17:33:07

阅读数:15396

【前言】

今天一天就做这个了,无语了,焦头烂额啊,

其实java的优势真不在应用程序上,

想编软件的学学C什么的。

【说明】

几种方法都试过,

但是好些都不成功,

可能是我的操作有问题吧。

【jsmooth】

接触的第一款jarToexe软件,

参考的这篇文章:

http://hi.baidu.com/chenzhiyanczy/blog/item/070a0f04f9da6308738b6514.html

感受:

可以生成独立的exe文件,

但是无法在没有jre的机器上运行,

文中所说的捆绑jvm也没有实现。

原理:

琢磨着像,把jar打进exe,同时告诉电脑jvm在哪。

【exe4j 】

参考文章:

http://www.blogjava.net/huliqing/archive/2008/04/18/193907.html

感受:

最后生成的是一个文件夹,其中有jre,jar,exe

exe文件不能离开这个文件夹否则无法使用。

原理:

应该是告诉电脑jar在哪,jvm在哪。

【Inno Setup】

参考文章:

同上。

感受:

就是把exe4j生成的文件夹做了一个安装包,

然后通过这个安装包安装,

感觉挺好玩,但是不现实,

一个安装包中有jre,所以很大。

【GreenJVMMake】

参考文章:

http://blog.csdn.net/cping1982/article/details/2892844

感受:

通过上面可以知道jar转成exe的大小和jre直接相关,

所以想到了精简jre大小,

自己琢磨了半天发现基本上有用的九个rt.jar,

所以准备精简rt.jar,使用这个软件可以做到,

做到之后结合exe4j会报错,

该文给出的方案和exe4j + Inno Setup相似,

但是到了这一步:

没办法,我们制作一个完整调用pack类库的小程序,而后以此生成仅有依赖库的rt.jar,合并打包进自定义的rt.jar中,再次运行程序。OK,通过了。

不知道pack类库是个什么,所以也没法进行下去。

原理:

精简jre,然后将jre和jar,以及可以告诉电脑jar和jvm在哪的一个exe放一起

【Java应用定制工厂】

参考文章:

http://www.2cto.com/kf/201112/113906.html

感受:

比上面的GreenJVMMake好用很多,

功能有:精简jre,将精简的jre和jar生成exe

其中精简有两种模式,

一是仅仅包含运行时用到的类,这种精简后jre很小;

另一种是包含运行时用到的类和其依赖的所有类,这种精简后jre稍大,但是出错少。

原理:

将jre精简,然后将jre,jar放到一个文件夹,生成exe,告诉电脑jar和jvm在哪,

exe也是不能脱离这个文件夹。

【推荐】

要是想将自己写的jar程序放到其他没有jre电脑上也可以用,

推荐这种方式:Java应用定制工厂 + Inno Setup

最新文章

  1. 使用haproxy的ACL封禁IP
  2. 【BZOJ2157】旅游 LCT
  3. java中使用 redis (转载)
  4. jdbc 数据的增删改查的Statement Resultset PreparedStatement
  5. 许愿墙的搭建(基于Apache+php+mysql)
  6. JavaScript - 基本概念
  7. tomcat7禁用catalina.out输出
  8. 9月5日 华为2014校园招聘的机试题目_C语言版答案
  9. 每天进步一点达——MySQL——myisampack
  10. 简单Linq笔记
  11. c#中的属性
  12. C各个类型的大小
  13. ASP.NET 给Web中的网页添加Loading进度条形式
  14. Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案
  15. G1 垃圾收集器入门
  16. python 做接口自动化测试框架设计
  17. JavaScript基础之对象属性的检测和枚举
  18. 1.let命令总结
  19. Generative Adversarial Nets[Theory&MSE]
  20. Django中模板使用

热门文章

  1. 2018.8.11E-mail
  2. IE9 placeholder 不兼容的解决
  3. [UOJ171][WC2016]挑战NPC
  4. 【LeetCode】002 Add Two Numbers
  5. VS软件版本号定义、规则和相关的Visual Studio插件
  6. PCBA 生产需要什么文件? (2018-07-10)
  7. immutable学习
  8. STM32 -- 故障记录
  9. MongoDB 3.4 高可用集群搭建(二)replica set 副本集
  10. Spark Tungsten in-heap / off-heap 内存管理机制--待整理