又是一个无聊的周末,硬着头皮给客户想出一套java程序打包的解决方案 【转】
目标:有安装程序包像安装qq一样简单一直下一步即可 ,可卸载,要求程序自动启动,不需要单独安装JRE,就在写这套解决方案的时候,我真是百般痛恨微软.哎无奈啊.幸好最终还是被我想出来了,分享下吧,好久不写博了.
第一步 jre减肥,删除jre/lib/rt.jar中不使用的类,删除charsets.jar中不使用的字符集编码.MyWork开源项目(http://mywork.sourceforge.net/)中带了一个瘦身过的JRE6.0,非常小只有几M.如果有需要可在此基础上适当的增肥,例如提示有类找不到,只要在完整的jre下rt.jar包中找到这个类所在的包添加到瘦身过的jre即可.
第二步 使用pack200进行压缩,压缩效果非常惊人,具体用法可参考官方手册,下面是最简单的压缩和解压缩命令(如果要制作安装包的话不建议压缩,因为不方便解压缩,还需要另外写程序进行解压)
压缩命令D:/xxxxx/pack200 rt.jar.pack.gz rt.jar
解压缩命令unpack200 -r jre/lib/rt.jar.pack jre/lib/rt.jar
第三步 将自己的程序打成jar包,注意指定主类,连同依赖的jar包一同放到jre/lib/ext下面,(当然也可以不怎么干,通过写批处理指定CLASSPATH)直接放到ext下面的好处在下面会体现出来
第四步 在jre文件夹的上层目录下面编写启动批处理%1的作用下面在说
@SET PATH=./jre/bin;%1;%PATH%;
@start javaw com.Main(根据实际情况修改为自己的程序入口)
将本地的jre或jdk文件夹重命名,并在cmd下敲java以确认本机的jre已经失效,点击批处理,测试如果程序正常启动的话,继续往下看,如果程序无法启动,将@start javaw com.Main改写为java com.Main重新启动调试下,看看是不是缺类.
第五步 将批处理编译成exe程序,使用Quick Batch File Compiler工具(http://www.abyssmedia.com/download.shtml),程序使用起来非常简单这里就不在介绍了,E文不好的可以去汉化新世纪下载中文的,注意如果要制作成安装包必须使用幽灵模式,不可以使用控制台模式.
第六步 制作安装包使用InnoSetup工具(百度一下到处都有下载),此工具有使用向导,这部分就不介绍了,向导结束后,会提示生成脚本,保存此脚本并生成exe安装包,运行安装包,如果生成出来的文件程序结构和第四步是一样的,并且可以运行的话,安装包制作完成.(这一步选择程序文件时批处理exe和jre一同加进来注意jre必须是没有进行pack2000压缩的,否则需要在安装脚本里面另写解压程序)
第七步 随windows自动启动程序,修改安装脚本添加如下代码
[Registry]
Root: HKLM; Subkey: "SOFTWARE/Microsoft/Windows/CurrentVersion/Run"; ValueType: string; ValueName: "程序名"; ValueData: """{app}/主程序.exe"" ""{app}/jre/bin"""
这里面就用到了%1 熟悉批处理的同学都知道系统自启动的时候.代表的并不是程序的所在文件夹,所以这里传递了jre所在文件夹参数,@SET PATH=./jre/bin;%1;%PATH%;中把jre添加到了path中.
第八步注销下重新登录看看程序是否自动启动了.(可以在没有安装jre的机器上测试下)
我的安装包大小为10M左右,我依赖了很多第三方的jar包,否则还可以更小,最后还可以加个壳或使用rar压缩下
分享到:
相关推荐
我们开发java程序运行的时候都需要依赖jre才能运行起来,但是用户的电脑上并没有安装jdk或jre的java运行环境。不可能让客户去安装了应用程序还要需安装java开发环境吧。下面是我将jar包打包成setup安装文件一些的...
jadx-gui-1.4.6-with-jre-win.zip.cab
java-14-openjdk-jre-14.0.1.7-1.windows.redhat.x86_64.zip
Java的桌面程序写好以后只能在eclipse下运行是不可以的,还需要将程序拷贝到其他电脑上运行才可以,所以需要制作成其他电脑可以运行的文件,当然在安装有jdk的电脑上只需要将程序导出为jar文件就可以运行了,但是...
内容: 1, Java8_64.sdk.8.0.0.636.tar.gz 2, Java8_64.jre.8.0.0.636.tar.gz 安装顺序: 1,Java8_64.jre.8.0.0.636.tar.gz 2,Java8_64.sdk.8.0.0.636.tar.gz 安装条件: ** 需要AIX的bos.rte>=6.1.7
java_home.jre.lib.fonts.fallback.tar.bz2.2
java_home.jre.lib.fonts.fallback.tar.bz2.1
jdk11中提取的jre11。 JDK11 占用 279MB 磁盘空间;JRE11 占用 158MB 磁盘空间;打包压缩后的 JRE11 仅占用 40.2MB 的磁盘空间。如果服务器资源紧张,安装这个就可以了
反编译工具
JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8.JRE8....
我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下: . .\java1.4.2\jre\bin\javaw.exe -jar ChatServer.jar 第一...
经过本人多次整理和测试,Java打包工具在无jdk环境下亦可以使用, 打包工具包含有:exe4j 4.5.2版本(包含注册码)。 jre1.6免安装迷你版,可以在无jdk的环境下使用,并减小安装包的容量。 inno工具可缩小可执行文件...
Android apk 反编译,直接查看源码。
java-11 windows-x64 安装包 ,免去外网下载慢的问题
eclipse项目导出Java文件为.exe可执行文件(并解决jre出错问题).pdfeclipse项目导出Java文件为.exe可执行文件(并解决jre出错问题).pdfeclipse项目导出Java文件为.exe可执行文件(并解决jre出错问题).pdfeclipse...
核心提示:首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了;但是exe文件在没有安装jre的电脑上不能运行,如果要求客户再去安装jre 设置环境变量 就不雅了。我们需要将jre打包。 这几步操作...
java转exe 操作文档含安装包,64-jre 常用的工具 以及 操作文档 详细得不能再详细了!
jadx-gui-1.2.0.125-2d9bcdb8-no-jre-win.exe.zip GitHub:https://github.com/skylot/jadx 下载链接:https://nightly.link/skylot/jadx/workflows/build/master
jdk17 安装包.zip
该软件能 在linux系统下挂载 QQ