JSP/java 执行创建批处理文件,并执行批处理事务。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
InputStream in = null;
InputStreamReader ir = null;
List list = new ArrayList();
String line = "";
String msg = "";
HttpSession session = req.getSession();
String username = req.getParameter("username");
String pwd = req.getParameter("pwd");
// 获取网站的绝对路径
String strDirPath = this.getServletConfig().getServletContext()
.getRealPath("/");
// 随机数
Random rd = new Random();
int rdNum = rd.nextInt();
// 文件名
String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat";
// 文件所在全路径
String filePath = strDirPath + fileName;
// 批处理文件的内容 username指用户登录名,pwd指密码
String content = " Dsquery user -samid " + username
+ " | dsmod user -pwd " + pwd;
writeFile(filePath, content);
try {
Process p = Runtime.getRuntime().exec(filePath);
in = p.getInputStream();
ir = new InputStreamReader(in);
BufferedReader br = new BufferedReader(ir);
while ((line = br.readLine()) != null) {
list.add(line);
}
if (p.waitFor() != ) {
msg = "0-批处理执行失败,请检查批处理文件是否正确!";
} else {
msg = "1-批处理执行成功!";
}
p.destroy();
Iterator it = list.iterator();
line = "";
while (it.hasNext()) {
line = line + (String) it.next();
}
it = null;
br.close();
br = null;
ir.close();
ir = null;
in.close();
in = null;
p.destroy();
p = null;
} catch (IOException e) {
msg = "2-io异常,请检查指定的批处理文件是否存在!";
} catch (InterruptedException e) {
msg = "3-中断异常!";
} catch (IllegalArgumentException e) {
msg = "4-命令为空!";
} catch (Exception e) {
msg = "5-未知异常!";
}
String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
try {
resp.sendRedirect(successUrl);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 将内容写入文件
*/
private void writeFile(String filePath, String content) {
File file = new File(filePath);
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
try {
OutputStreamWriter write = new OutputStreamWriter(
new FileOutputStream(file), "Utf-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write(content);
writer.close();
write.close();
} catch (Exception e) {
J2ee中执行创建批处理文件,并执行批处理事务。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
InputStream in = null;
InputStreamReader ir = null;
List list = new ArrayList();
String line = "";
String msg = "";
HttpSession session = req.getSession();
String username = req.getParameter("username");
String pwd = req.getParameter("pwd");
// 获取网站的绝对路径
String strDirPath = this.getServletConfig().getServletContext()
.getRealPath("/");
// 随机数
Random rd = new Random();
int rdNum = rd.nextInt(1000);
// 文件名
String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat";
// 文件所在全路径
String filePath = strDirPath + fileName;
// 批处理文件的内容 username指用户登录名,pwd指密码
String content = " Dsquery user -samid " + username
+ " | dsmod user -pwd " + pwd;
writeFile(filePath, content);
try {
Process p = Runtime.getRuntime().exec(filePath);
in = p.getInputStream();
ir = new InputStreamReader(in);
BufferedReader br = new BufferedReader(ir);
while ((line = br.readLine()) != null) {
list.add(line);
}
if (p.waitFor() != 0) {
msg = "0-批处理执行失败,请检查批处理文件是否正确!";
} else {
msg = "1-批处理执行成功!";
}
p.destroy();
Iterator it = list.iterator();
line = "";
while (it.hasNext()) {
line = line + (String) it.next();
}
it = null;
br.close();
br = null;
ir.close();
ir = null;
in.close();
in = null;
p.destroy();
p = null;
} catch (IOException e) {
msg = "2-io异常,请检查指定的批处理文件是否存在!";
} catch (InterruptedException e) {
msg = "3-中断异常!";
} catch (IllegalArgumentException e) {
msg = "4-命令为空!";
} catch (Exception e) {
msg = "5-未知异常!";
}
String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
try {
resp.sendRedirect(successUrl);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 将内容写入文件
*/
private void writeFile(String filePath, String content) {
File file = new File(filePath);
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
try {
OutputStreamWriter write = new OutputStreamWriter(
new FileOutputStream(file), "Utf-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write(content);
writer.close();
write.close();
} catch (Exception e) {
JSP/java 执行创建批处理文件,并执行批处理事务。的更多相关文章
- java 执行bat批处理文件 并关闭cmd窗口
java 执行bat批处理文件 并关闭cmd窗口 import java.io.IOException; public class CmdMain { public static void main( ...
- java类创建时里面成员执行的先后顺序
静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行.只要用到类,哪怕new对象(比如只声明变量)也会被执行,且只执行一次.一般用于对类进行初始化. 先执行静态代码块,静态成员(谁在前就先执 ...
- 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类
一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...
- java之生成可重复执行的sql脚本
在实际项目开发过程中,sql脚本需要多次执行.而一般的DML和DDL语句一般只能执行一次,再次执行执行时就会报错(操作对应已存在/不存在),所以必须将sql脚本生成可重复执行的.本文共分为4部分:1. ...
- java代码的编译、执行过程
Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...
- 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件 特地将执行map的个数设置为变量 测试 可以java代码传参数 ...
- Java代码的编译和执行
Java代码编译和执行的整个过程包含了以下三个重要的机制: (1)Java源码编译机制 (2)类加载机制 (3)类执行机制 1.Java代码编译是由Java源码编译器来完成,流程图: Java 源码编 ...
- Java的初始化块及执行过程详解
问题:Java对象初始化方式主要有哪几种?分别是什么?针对上面的问题,想必大家脑海中首先浮现出的答案是构造器,没错,构造器是Java中常用的对象初始化方式. 还有一种与构造器作用非常相似的是初始化块, ...
- JavaFX程序初次运行创建数据库并执行建表SQL
在我的第一个JavaFX程序完成安装的时候才突然发现,不能要用这个软件还要手动执行Sql来建表吧? 于是我的想法是在Main程序中执行时检测数据库连接状况,如果没有检测到数据库或者连接异常,那么出现错 ...
随机推荐
- 大话设计模式之PHP篇 - 适配器模式
定义将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作. 角色Target适配目标,该角色定义把其他类转换为何种接口,也就是我们的期望接口.Adapte ...
- JDK的安装配置
1.下载JDK安装包(http://www.oracle.com/technetwork/java/javase/downloads/index.html),现在Java已经更新到JDK 8了,但是很 ...
- Spring中为什么实体类不用注入
要理解为什么不用注入,首先就清楚注入的目的是什么?如果不注入,在程序中要使用某个类对象的方法,则需要去new一个对象.然后我们调用其中的方法,众所周知"程序=算法+数据".不失一般 ...
- 搭建本地yum源服务器
搭建本地yum源服务器 好久没写博客了,最近比较动荡,临毕业时跳了个槽,感觉之前做的金融方向的运维不是很适合我,对各方面的限制还是太多.金融的IT对于安全似乎要求很高,云盘,U盘都不能用,还要经常 ...
- struts2 if标签示例[转]
下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...
- html div + css 下划线
这里通过边框属性的虚线边框border控制虚线.以下设置的css 高度(css height)和css 宽度(css width)为350像素是为了便于观看演示 其它意思.一.四边为虚线边框borde ...
- python基础6 - while 循环与转义字符
8. while 循环基本使用 8.1 while 语句基本语法 初始条件设置 —— 通常是重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足 ...
- Advanced SQL: Relational division in jOOQ
i Rate This Relational algebra has its treats. One of the most academic features is the ...
- python3中的unicode_escape
一. 响应的两种方式 在使用python3的requests模块时,发现获取响应有两种方式 其一,为文本响应内容, r.text 其二,为二进制响应内容,r.content 在<Python学习 ...
- hzau 1207 Candies
1207: Candies Time Limit: 2 Sec Memory Limit: 1280 MBSubmit: 223 Solved: 31[Submit][Status][Web Bo ...