原摘自: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

几种jar转exe方法的比较的更多相关文章

  1. Java程序如何生成Jar、exe及安装文件

    http://blog.csdn.net/luoweifu/article/details/7628006/ 一.用Eclipse生产Jar文件 首先,看一下我的项目的目录结构: 1,项目名字上面点右 ...

  2. MSSTDFMT.dll系统文件(附2种MSSTDFMT.dll 注册方法)-系统增强

    MSSTDFMT.dll系统文件(附2种MSSTDFMT.dll 注册方法)-系统增强 msstdfmt.dll是微软标准数据格式对象相关动态链接库文件. msstdfmt.dll里面包含了定义好函数 ...

  3. jsp的服务器响应,out.println 与response.setIntHeader的报错解决方案,附:导入jar包的方法

    在九大内置对象中,笔者认为用的最多的就是out.println 与response.setIntHeader,今天刚写了一个服务器响应的代码,也总是这两个报错.具体请看图. 先来说说response. ...

  4. 几种封装javaBean的方法

    开发框架时,经常需要使用java对象(javaBean)的属性来封装程序的数据,封装javaBean的方法有很多,比如反射,内省,以及使用工具类.下面从反射开始介绍. 1.javaBean介绍: 简介 ...

  5. 双击jar包运行方法

    方案一 在jar包同级,写个bat文件,如下 java -jar Xxx.jar pause 方案二 右击jar文件 ->打开方式->选择安装的jre/bin/javaw.exe. 双击依 ...

  6. exe4j打包--jar打包exe

    本文重点介绍如何将我们写的java代码打包成在电脑上可以运行的exe文件.这里只介绍直接打包成exe的方法,至于打包成exe安装包下节介绍 test 软件准备 exe4j集合包下载地址(下节内容也在这 ...

  7. javascript四种类型识别的方法

    × 目录 [1]typeof [2]instanceof [3]constructor[4]toString 前面的话 javascript有复杂的类型系统,类型识别则是基本的功能.javascrip ...

  8. iOS 三种收起键盘的方法

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  9. 干货:结合Scikit-learn介绍几种常用的特征选择方法

    原文  http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非 ...

随机推荐

  1. New Concept English there (60)

    33w/m 43 Punctuality is a necessary habit in all public affairs in civilized society. Without it, no ...

  2. 网页播放rtsp流媒体

    解决方法: 1.搭建Red5流媒体服务器(其他还有CRTMPD.NGINX-RTMP.SRS) 2.FFmpeg(其他还有live555)实现监控摄像头的RTSP协议转RTMP协议直播 3.搭建WEB ...

  3. Dilworth 定理

    主要是做个笔记 DAG 最长反链 = 最小链覆盖 反链:反链上任意两个点 $(u,v)$ ,$u$ 不能到 $v$,$v$ 也不能到 $u$ 最小链覆盖:选出若干可以相交的链,覆盖整张图,注意与“最小 ...

  4. Qt之事件处理机制

    思维导读 一.事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下 ...

  5. 微信小程序编写物流信息进度样式

    做电商类型的小程序一定会碰到编写物流信息的时候,一般页面如下图 难点在于只有一条信息时候的页面样式 以及多条信息最后一条信息的页面样式 之前没做过这一块的东西,所以刚碰到的时候想了老半天orz.后来上 ...

  6. 理解SQL查询的底层原理

    阅读目录 一.SQL Server组成部分 二.查询的底层原理 本系列[T-SQL]主要是针对T-SQL的总结. T-SQL基础 [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  7. [转]HTMl中Meta标签详解以及meta property=og标签含义

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之 ...

  8. DOM对象和JQuery对象互转

    实现点击某一个单元格,将单元格内部的sql提交执行: <td onclick="submitSqlExecute(this)">...<span>${ctx ...

  9. Sentry入门

    指令类型: 创建.删除角色: CREATE ROLE sentry_all; droop role admin_role;   角色授权/撤销权限: 数据库级别角色授权 GRANT ALL ON DA ...

  10. 11.Selenium+Python案例--百度

    一.具体代码实现 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionCh ...