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();
}
}