用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方法不行 展开
 我来答
ongdogdog
2011-05-05 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:51.2万
展开全部
su需要直接执行命令的话需要参数-c,man一下。
更多追问追答
追问
汗 不好意思 -c我在命令里面打了..提问没写全 ..  不过加了-c还是不行额..
追答
按楼下的方法也不行吗?因为Runtime.getRuntime().exec()是Executes the specified string command in a separate process,不会在当前进程等待的。。。

你确定import没在跑?有没有ps -ef 看过?
raymonlu
2011-05-05 · TA获得超过943个赞
知道小有建树答主
回答量:792
采纳率:0%
帮助的人:756万
展开全部
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
追问
我加了waitFor后还是不行..执行后还是没反应  也没异常..  同样的语句直接在终端输入可以用 在Runtime.getRuntime().exec()里执行没反应是什么情况..  还是说需要在语句里加转义符什么的么?
追答
你在'前面加上\,变成\'试试看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zuolangguo
2011-05-05 · TA获得超过110个赞
知道答主
回答量:226
采纳率:0%
帮助的人:138万
展开全部
不回哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式