我在java中运行sh命令时,执行sql语句
Process process =null;
String command = "cd /test/test/ ";
String command0 = "sqlplus user/user @test.sql ";
process = Runtime.getRuntime().exec(command);
process.waitFor();process = Runtime.getRuntime().exec(command0);
process.waitFor(); //执行该步时,无反应,不报错。sql文件没有被执行
上述代码,执行到后一个process.waitFor();时,无反应,sql文件不能被执行,求解。
另,尝试了将上述代码写到sh文件中,再去执行sh文件,同样的问题。
Process process =null;
String command = "cd /test/test/ ";
String command0 = "sqlplus user/user @test.sql ";
process = Runtime.getRuntime().exec(command);
process.waitFor();process = Runtime.getRuntime().exec(command0);
process.waitFor(); //执行该步时,无反应,不报错。sql文件没有被执行
上述代码,执行到后一个process.waitFor();时,无反应,sql文件不能被执行,求解。
另,尝试了将上述代码写到sh文件中,再去执行sh文件,同样的问题。
然后再执行sh文件试试
还差了一个东西,我没看见
String command0 = "sqlplus user/user@tns_name @test.sql "; 看一下,如何+ 167765087 java开发技术交流
参考:mysql.bakup.sh#!/usr/bin/expect
spawn ./db.backup.sh #调用这个脚本,里面含有mysql的备份命令
expect "Enter password:"
send "123456\n" #这是数据密码
expect eofmysql.backup.sh这个脚本,当执行'db.backup.sh'备份数据时,遇到mysql要求输入密码的字符串"Enter password:",会自动输入密码"123456\n",'\n'相当于回车。