java 生成bat_java实现生成windows可执行的批处理文件(.bat)
/*** 下载压缩包
*
*@paramid 商户id
*@paramrequest
*@paramresponse
*@returnvoid
*@authorchen.bing
* @Date 2019/11/4 17:35*/@RequestMapping(value= "downloadzip")public voiddownloadzip(String id, HttpServletRequest request, HttpServletResponse response) {if(StringUtils.isBlank(id)) {
LOG.error("商户id为空");return;
}
String rootZipUrl= Global.getProperty("VOUCHER_IMAGE_DIR");
File rootFile= newFile(rootZipUrl);if (!rootFile.exists()) {
LOG.error("当前文件夹不存在", rootZipUrl);return;
}
String zipUrl=rootZipUrl;
SysMerch sysMerch=sysMerchService.selectById(id);if (sysMerch != null) {
String scheme=request.getScheme();
String contextPath=request.getContextPath();
String serverName=request.getServerName();int port =request.getServerPort();
String basePath= scheme + "://" + serverName + ":" + port +contextPath;
String orgCode=sysMerch.getOrgCode();
String merchNo=sysMerch.getMerchNo();
String merchName=sysMerch.getMerchName();
String merchNameDir= rootZipUrl + File.separator +merchName;
String oldZipUrl= rootZipUrl + File.separator + "downloadZip";boolean b =FileUtils.fileNameRenameTo(oldZipUrl,merchNameDir);
zipUrl=oldZipUrl;if(b) {
zipUrl=merchNameDir;
}
String batUrl= zipUrl + File.separator + "安装包" + File.separator + "setup.txt";
File file= newFile(batUrl);if (!file.exists()) {
File parentFile=file.getParentFile();if (!parentFile.exists()) {
parentFile.mkdirs();
}//不存在创建文件和其父目录
FileUtils.createFile(batUrl);
}
setUpMerchLogo(orgCode, merchNo, merchName, request);
String merchLogoBat= "set wind = ws.createshortcut(strDesktop & \"\\%s.lnk\")";
String url= "wind.Arguments=\"%s\"";
String loginUrl= basePath + "/login?org_code_ck_key=" + orgCode + "&merch_no_ck_key=" +merchNo;
String logoBat=String.format(merchLogoBat, merchName);
String merchUrl=String.format(url, loginUrl);
List list = new LinkedList<>();
list.add("@echo off");
list.add("more %0 +5>%temp%yst.vbs");
list.add("%temp%yst.vbs");
list.add("del %temp%yst.vbs");
list.add("exit");
list.add("set ws = createobject(\"wscript.shell\")");
list.add("strDesktop = ws.SpecialFolders(\"Desktop\")");
list.add(logoBat);
list.add("wind.IconLocation = ws.CurrentDirectory & \"\\favicon.ico\"");
list.add("wind.targetpath = \"%ProgramFiles%\\Internet Explorer\\IEXPLORE.EXE\"");
list.add("wind.workingdirectory = \"%ProgramFiles%\\Internet Explorer\"");
list.add(merchUrl);
list.add("wind.save");
OutputStream outputStream= null;try{//加锁,防止在压缩时有图片写入
synchronized(ZIP_LOCK) {
outputStream= newFileOutputStream(file);//此处循环操作是因为要将.bat文件转换为windows格式
for (int i = 0; i < list.size(); i++) {byte[] bytes = list.get(i).getBytes(Charset.forName("GB2312"));
outputStream.write(bytes);if (i
outputStream.write("\r\n".getBytes(Charset.forName("GB2312")));
}
}
outputStream.close();
String batPath= zipUrl + File.separator + "安装包" + File.separator + "setup.bat";
File batFile= newFile(batPath);
batFile.delete();
FileUtils.fileNameRenameTo(batUrl,batPath);
FileUtils.downloadZip(response, rootZipUrl, merchName);
FileUtils.fileNameRenameTo(merchNameDir, oldZipUrl);file.delete();
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
}
java 生成bat_java实现生成windows可执行的批处理文件(.bat)相关推荐
- linux java编译后生成文件_Linux终端编译并执行Java文件
shell 中操作: 1.先创建java项目目录,名称project. mkdir project 2.在项目中创建src和bin目录,src下用于存放 ".java" 文件,bi ...
- java冰雹数10_生成的新的数字再执行同样的动作, 循环往复.
生成的新的数字再执行同样的动作, 循环往复. 声明 可能本文章会有错误, 希望各位读者看到后, 记得回复留言, 提醒我, 以免误人子弟. 本人菜鸡, 还望各位大佬手下留情. 题目: 冰雹数 任意给定一 ...
- JAVA利用JXL导出/生成 EXCEL1
/*** 导出导出采暖市场部收入.成本.利润明细表* @author JIA-G-Y*/public String exporExcel(String str) { String str=Servle ...
- java的可执行文件_java生成可执行文件的方法总结
第一种:在jbuilder中: 首先你要保证Run菜单-->Run Project能顺利运行 然后Wizards菜单-->Native Executable Bui ...
- java注解的开发_使用Java注解开发自动生成SQL
使用注解开发的好处就是减少配置文件的使用.在实际过程中,随着项目越来越复杂,功能越来越多,会产生非常多的配置文件.但是,当配置文件过多,实际维护过程中产生的问题就不容易定位,这样就会徒劳的增加工作量. ...
- Android工程中R.java文件的重新生成——注意资源文件的错误
一.如果二或三步骤还是不能生成R.java中内容,一般是XML文件有错,或者xml引用的资源文件找不到,用排除法删除xml后执行二或者三的步骤. 二. 在Android中使用开源代码或者自己开发项目的 ...
- 【java】Java运行时动态生成类几种方式
1.概述 转载:Java运行时动态生成类几种方式 这里发现自己不知道的,原来Java 还能自己编译自己,学到了. 最近一个项目中利用规则引擎,提供用户拖拽式的灵活定义规则.这就要求根据数据库数据动态生 ...
- JAVA实现模板word文档导入,Java依据word模板生成word文档之后台解析和实现及部分代码(一)...
Java根据word模板生成word文档之后台解析和实现及部分代码(一) 后台主要工作是解析XML定义的标签文件,并获取到数据集,放入到Map中,然后调用Jacob.jar中提供的相关方法来实现替换. ...
- bpmn 文件 服务器部署,Java项目activiti BpmnModel生成的流程图,部署服务器乱码问题...
Java项目activiti BpmnModel生成的流程图,部署服务器乱码问题 Java项目activiti BpmnModel生成的流程图,部署服务器乱码问题 项目中需要前端查看流程的情况,所以需 ...
最新文章
- ubuntu16.04系统下安装fasttext文本分类库
- 内存对齐/字节对齐/数据对齐/地址总线对齐
- stl中的list学习笔记
- 查看源代码不方便?我有利器
- 自定义DataSet
- Ubuntu16.04 修改主机名
- vb.net调用oracle存储过程,vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc...
- java 策略模式 促销_java设计模式——策略模式
- 相机噪声与深度感知的方法梳理
- java getidentifier_android – 如何使用getResource.getIdentifier()获取布局?
- 线程的同步与互斥,死锁
- javaweb实训第二天上午——jQuery基础
- 加拿大计算机硕士gpa不够,加拿大研究生留学申请者绩点低怎么办?这四类应对方法你都知道吗?...
- 进销存软件定制开发怎么做?
- java邮件服务器搭建_邮件服务器+javamail(仅包括发送)搭建
- 服务器开机显示检查电缆,电脑开机显示无VGA电缆是怎么回事,求答!
- 你的梦想是什么?灿星文化眼含热泪只想IPO
- 【无标题】程序员的一大步
- Bert模型(一)安装及问题解决(基本每一步都有问题)
- superpixels
热门文章
- 解决Linux docker中的mysql区分大小写问题
- SQL基础语句(详解版)
- 实战_01_Spring SpringMVC 整合Mybaits
- gb-heima/order 项目 处理
- 计算机2级什么时间考,全国计算机2级考试什么时间出成绩单
- root - 计算机术语,root什么意思
- .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
- Qt中线程的简单使用
- Python 线程创建和传参 - Python零基础入门教程
- 软件数控编程_这么多CNC数控编程软件, 你觉得哪个好?