java调用外部命令 关于sqlloader 急

dlam9 2013-04-07 04:43:30
命令行 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,哪位朋友碰到过的,指点下
...全文
162 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlam9 2013-04-08
  • 打赏
  • 举报
回复
不知道为什么今天来运行就不报错了 不知道怎么回事
  • 打赏
  • 举报
回复
按说Runtime.getRuntime().exec("cmd /c start sqlldr test/test@KEN ……或者Runtime.getRuntime().exec("cmd /c sqlldr test/test@KEN …… 这样应该可以啊
dlam9 2013-04-08
  • 打赏
  • 举报
回复
sqlldr在cmd中可以正常执行 但是使用runtime来执行就报错
dlam9 2013-04-08
  • 打赏
  • 举报
回复
try{ 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(); }
xianwangkai 2013-04-07
  • 打赏
  • 举报
回复
String cmd="D:/oracle/ora92/bin/sqlldr userid=test/test@testdb skip=1 control=e:/test.ctl bad=e:/bad.txt"; 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()); } 你试试!
dlam9 2013-04-07
  • 打赏
  • 举报
回复
安装了 cmd中可以输入sqllsr
  • 打赏
  • 举报
回复
安装Oracle Client了吗?光有服务器?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧