关于JAVA执行 LINUX 下 命令的问题,Runtime.getRuntime().exec(cmd) 的问题

worm-wei 2008-08-07 11:40:27
我的程序里要用倒几个命令
于是实现
public void UseOsCmd(String cmd) throws Exception{
//执行命令
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(cmd);
System.out.println("#以下是命令["+cmd+"]的输出:");
//读取命令输出
InputStreamReader reader = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader (reader);
String line = "";
while ((line = input.readLine ()) != null){
System.err.println("[mkisofs:]"+line);
}
}

外面调用这个方法

可是,有的时候 有的命令 却执行不了
就是也没有报错,却没有执行结果,
昨天晚上还有问题的,今天来run 却又没有问题了,
到了客户那还得有问题

这里用到了 进程

莫非哪里 死锁了俄?
...全文
617 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
worm-wei 2008-08-08
  • 打赏
  • 举报
回复
这个我注意过了,没有权限问题
loaferwang 2008-08-07
  • 打赏
  • 举报
回复
你的用户有执行这个java,javac 这两个文档的权限吗,你应该为linux这个用户加上读,写,运行这两个文档的权限呀,如果是你在用root进行编辑时,没有问题的话,而换了用户之后,产生如上述情况下,大都是这样的情况啦!
worm-wei 2008-08-07
  • 打赏
  • 举报
回复
mkisofs

linux 下面生成ISO文件的命令

现在我稍微该了一点就可以了

但是我想知道为什么,我把方法的 getInputStream方法换成 getErrorStream 方法,
public void UseOsCmd(String cmd) throws Exception{
//执行命令
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(cmd);
logger.info("#以下是命令["+cmd+"]的输出:");
System.out.println("#以下是命令["+cmd+"]的输出:");
//读取命令输出
InputStreamReader reader = new InputStreamReader(process.getErrorStream());
LineNumberReader input = new LineNumberReader (reader);
String line = "";
while ((line = input.readLine ()) != null){
System.err.println("[mkisofs:]"+line);
}
}

然后输出的信息里有这么一句
I: -input-charset not specified, using utf-8 (detected in locale settings)
他是说我的编码有问题? 可是 iso 文件还是产生了
lihui820905 2008-08-07
  • 打赏
  • 举报
回复
问题的关键在于你的cmd是什么
worm-wei 2008-08-07
  • 打赏
  • 举报
回复
望各位大虾们,告知

谢过先

62,616

社区成员

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

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