用java方法 Runtime.getRuntime().exec 在 linux服务器上导入dmp文件的问题 求助 10
Runtime.getRuntime().exec("su-oracle-c'imptest/testfile=/usr/xx/xx.dmptables=(xx)rows...
Runtime.getRuntime().exec("su - oracle -c 'imp test/test file=/usr/xx/xx.dmp tables=(xx) rows=y ignore=y grants=n'") 在linux服务器上执行这个方法后没反应 也不报错 不知道为何 有没高人指导下 注:su - oracle -c 'imp test/test file=/usr/xx/xx.dmp tables=(xx) rows=y ignore=y grants=n' 此语句直接在终端输入 可以正常导入 为何用exec方法不行
展开
展开全部
su需要直接执行命令的话需要参数-c,man一下。
更多追问追答
追问
汗 不好意思 -c我在命令里面打了..提问没写全 .. 不过加了-c还是不行额..
追答
按楼下的方法也不行吗?因为Runtime.getRuntime().exec()是Executes the specified string command in a separate process,不会在当前进程等待的。。。
你确定import没在跑?有没有ps -ef 看过?
展开全部
String command = "su - oracle -c 'imp test/test file=/usr/xx/xx.dmp tables=(xx) rows=y ignore=y grants=n'"
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
最重要的就是后面的waitFor
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
最重要的就是后面的waitFor
追问
我加了waitFor后还是不行..执行后还是没反应 也没异常.. 同样的语句直接在终端输入可以用 在Runtime.getRuntime().exec()里执行没反应是什么情况.. 还是说需要在语句里加转义符什么的么?
追答
你在'前面加上\,变成\'试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不回哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询