我使用process = Runtime.getRuntime().exec(cmd,null,new File(path));
以執行文件中的一些SQL(abz.sql)問題與運行調用Runtime.getRuntime(時)EXEC
命令是:
"sqlplus "+ context.getDatabaseUser() + "/"
+ context.getDatabasePassword() + "@"
+ context.getDatabaseHost() + ":"
+ context.getDatabasePort() + "/"
+ context.getSid() + " @"
+ "\""
+ script + "\"";
String path=context.getReleasePath()+ "/Server/DB Scripts";
據執行該文件,但沒有退出。因此我嘗試使用:
Writer out = new OutputStreamWriter(process.getOutputStream());
out.append("commit;\r\n");
out.append("exit \r\n");
System.out.println("---------"+out);
out.close();
此它完整塊我米使用:
if(context.getConnectionField()=="ORACLE")
{
String cmd=
"sqlplus "+ context.getDatabaseUser() + "/"
+ context.getDatabasePassword() + "@"
+ context.getDatabaseHost() + ":"
+ context.getDatabasePort() + "/"
+ context.getSid() + " @"
+ "\""
+ script +"\"";
String path=context.getReleasePath()+ "/Server/DB Scripts";
process = Runtime.getRuntime().exec(cmd,null,new File(path));
out = new OutputStreamWriter(process.getOutputStream());
out.append("commit;\r\n");
out.append("exit \r\n");
System.out.println("---------"+out);
out.close();
Integer result1 = null;
while (result1 == null) {
try {
result1 = process.waitFor();
}
catch (InterruptedException e) {}
}
if(process.exitValue() != 0)
return false;
return true;
}
如果您認真對待此問題,請考慮其他人如何閱讀您的問題;你的問題格式不好,很難爲其他人閱讀。通常,這會導致低質量的答案或根本沒有答案。如果你想正確回答你的問題,請嘗試寫下你的問題:) – 2011-05-03 14:38:15
它以什麼方式不起作用?你沒有得到你期望的結果,或者你是否遇到異常情況等? – karakuricoder 2011-05-03 14:43:06