前有有讲过,如何通过java,将jar制作成自解压的exe文件。现收到需求:用户下载exe时,自动往exe文件中添加或覆盖某文件。
思路:
1、由于自解压的exe文件由sfx、config.txt、7z压缩文件组成。所以直接用venzfile是打不开该文件的。
2、从exe文件中,找到config.txt结尾标识的位置(pos).
3、将exe文件拆会成两具临时文件件:sfx+config.txt文件,z7.7z压缩包文件。
4、调用venzfile,添加中覆盖文件组成新的压缩文件newz7.7z压缩包。
5、合并sfx+config.txt文件、newz7.7z压缩包成exe生解压文件。
代码如下:
其中:d:\test\7z自解压.exe 为自解压exe文件。
/** * 查找文件中的config.txt结尾位置 * * @throws ioexception */@testpublic void getconfigendpostest() throws ioexception {final file exefile = new file("d:\testz自解压.exe");final byte[] configend脸平如何变得立体= ";!@installend@!".getbytes("iso-8859-1");final bufferedinputstream exebis = new bufferedinputstream(new fileinputstream(exefile));// sfx假定大于124928exebis.skip(124928);int b;long pos = 124928;int macth = 0;while ((b = exebis.read()) != -1) {pos++;if (configend[macth] == b) {macth++;} el {macth = 0;}if (macth == 15) {system.out.print(pos);break;}}exebis.clo();}/** * 自解压文件拆分成: sfx+config, 7z两个临时文件 * * @throws ioexception */@testpublic void splitfiletest() throws ioexception {final file exefile = new file("d:\testz自解压.exe");final fileinputstream exein = new fileinputstream(exefile);final file sfxfile = new file("d:\test\sfx.tmp");sfxfile.createnewfile();final fileoutputstream sfxos = new fileoutputstream(sfxfile);// 125070 第一步求得的posbyte[] buffer = new byte[125070];int length;length = exein.read(buffer);sfxos.write(buffer, 0, length);sfxos.clo();final file z7file = new file("d:\test\z7.7z");z7file.createnewfile();final fileoutputstream z7os = new 大连理工大学城市学院fileoutputstream(z7file);while ((length = exein.read(buffer)) > 0) {z7os.write(buffe天津三本院校r, 0, length);}z7os.clo();exein.clo();}/** * 添加或覆盖的文件到7z * * @throws ioexception */@testpublic哥哥第一次见到妹妹有多害羞 void writefileto7z() throws ioexception { //略,7z文件处理}/** * sfx+config + 新的7z文件成exe. * @throws ioexception */@testpublic 爱情表白void mergefile() throws ioexception {//略, 参考前一篇的《java jar制作可自运行的exe包》}
本文发布于:2023-04-05 10:25:42,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/7dc29c64f65ef0bc5b37b4883209b401.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:exe怎么解压成文件(电脑上强力卸载的软件找回方法).doc
本文 PDF 下载地址:exe怎么解压成文件(电脑上强力卸载的软件找回方法).pdf
留言与评论(共有 0 条评论) |