Java代码中调用一个linux下可执行程序的问题

dggl 2006-08-26 11:22:25
我想在Java中调用一个Linux下的可执行程序dmwrite,已经把这个dmwrite程序放在/usr/sbin目录下,手工执行了一下,没有问题,但在Java代码中通过Runtime.exec执行的时候却没有反应.
后来我写了一个小shell:generate.sh,在这个sh中调用dmwrite,把shell文件放在了/home/test目录下面,java代码中这样执行exec("sh /home/test/generate.sh"),手工在linux的终端上这样执行没有问题,但是通过java代码执行总是没有反应,我这么些是不是有什么问题?对linux不怎么懂,期盼大家指教
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sniperwen 2006-08-28
  • 打赏
  • 举报
回复
Process的标准输入流是需要接收完毕的,不然执行不会成功
下面是随便搜索过来的一点代码,作参考吧


Runtime runtime = Runtime.getRuntime();
Process process =null;
String line=null;
InputStream is =null;
InputStreamReader isr=null;
BufferedReader br =null;
String ip="www.sina.com.cn"; //待Ping的地址
try
{
process =runtime.exec("ping "+ip);
is = process.getInputStream();
isr=new InputStreamReader(is);
br =new BufferedReader(isr);
out.println("<pre>");
while( (line = br.readLine()) != null )
{
out.println(line);
out.flush();
}
out.println("</pre>");
is.close();
isr.close();
br.close();
}
catch(IOException e )
{
out.println(e);
runtime.exit(1);
}
killme2008 2006-08-26
  • 打赏
  • 举报
回复
很有可能是权限问题
  • 打赏
  • 举报
回复
java里对LINUX路径的描述不一样吧

62,614

社区成员

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

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