命令行 sqlldr test/test@test control=a.ctl log=ok.log bad=bad.log,
直接在cmd下执行没有问题,但是通过java的 Runtime.getRuntime().exec("sqlldr test/test@KEN control=E:/aaaa/a.ctl log=E:/aaaa/ok.log bad=E:/aaaa/bad.log");却报错,Exception in thread "main" java.io.IOException: Cannot run program "sqlldr": CreateProcess error=2,哪位朋友碰到过的,指点下
直接在cmd下执行没有问题,但是通过java的 Runtime.getRuntime().exec("sqlldr test/test@KEN control=E:/aaaa/a.ctl log=E:/aaaa/ok.log bad=E:/aaaa/bad.log");却报错,Exception in thread "main" java.io.IOException: Cannot run program "sqlldr": CreateProcess error=2,哪位朋友碰到过的,指点下
try
{
Process ldr=Runtime.getRuntime().exec(cmd);
InputStream stderr = ldr.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println("*** " + line);
stderr.close();
isr.close();
br.close();
try
{
ldr.waitFor();
}
catch(Exception e)
{
System.out.println("process function:loader wait for != 0" );
}
}
catch(Exception ex)
{
System.out.println("process function:loader execute exception"+ex.toString());
}
你试试!
String str = "sqlldr userid=iptvqos5m/iptv2011@//192.168.203.95/sip skip=1 control=E:\\pro\\Java\\src\\loaddata.ctl log=E:\\pro\\Java\\src\\loaddata.log"
Runtime.getRuntime().exec(str);
} catch (IOException e) {
e.printStackTrace();
}
这样应该可以啊