日期:2014-05-20  浏览次数:20790 次

Process的相关问题
在java中调用控制台命令,
Runtime.getRuntime().exec(commandstr1);
执行一条指令可以,
但遇到多条相关指令执行时不行,如,先打开相关路径下的数据库控制台,再选择使用的数据库,再调用备份数据指令.请指点.
String   commandstr1= "C:\\program   files\\mysql\\bin\\   mysql   -uroot   -proot   ";
String   commandstr2= "use   database ";
String   commandstr3= "into   outfile   'a.txt ' ";

------解决方案--------------------
String commandstr2= "use database ";
String commandstr3= "into outfile 'a.txt ' ";
这两条,应该是不能执行,它们不是windows的东西....
应该是连到mysql数据库,然后以执行sql语句的方式,运行这些命令.
------解决方案--------------------
写成bat文件不行?
------解决方案--------------------
在WINDOWS下面 把命令写在BAT里面
然后Runtime.getRuntime().exec( "c:/test.bat ");
如果直接执行都不行就不要指望Process来执行了
在LINUX下面
写成shell也一样执行

------解决方案--------------------
写成bat或者shell调用
------解决方案--------------------
public static void main(String[] args) {

Runtime rn = Runtime.getRuntime();
Process p = null;
try {
FileWriter writer = new FileWriter( "c:\\mysql.bat ");
writer.write( "@echo off ");
writer.write( "\r\n ");
writer.write( "cd C:\\program files\\mysql\\bin\\ mysql -uroot -proot ");
writer.write( "\r\n ");
writer.write( "use database ");
writer.write( "\r\n ");
writer.write( "@echo on ");
writer.close();
p = rn.exec( "cmd /C " + "c:\\mysql.bat ");

} catch (Exception e1) {
e1.printStackTrace();
}
}