问题描述
一个Java程序在Linux下面执行shell命令来创建用户为什么总是执行不成功呢。希望大家帮帮小弟!!!Stringuser="张三";Stringcellphone="5858678";Stringcommandstr="useradd-glingyun"+user+";echo""+cellphone+""|passwd--stdin"+user+"";Processp;System.out.println(commandstr);try{p=Runtime.getRuntime().exec(commandstr);if(p.waitFor()==0){out.print("backupsuccessn");}else{out.print("backupfalsen");}}catch(Exceptione){out.print("backupfailn");out.println(e.toString());}
解决方案
解决方案二:
在ubuntu下面,passwd命令貌似没有--stdin参数阿,所以返回值不为0,LZ是用的什么linux?
解决方案三:
useradd-glingyunzhangsan;echo"1989721"|passwd--stdinzhangsan我纠正一下命令是可以执行成功的关键是p=Runtime.getRuntime().exec(commandstr);if(p.waitFor()==0){out.print("backupsuccessn");}这一步它不执行不成功!!
解决方案四:
引用2楼z80412007的回复:
useradd-glingyunzhangsan;echo"1989721"|passwd--stdinzhangsan我纠正一下命令是可以执行成功的关键是p=Runtime.getRuntime().exec(commandstr);if(p.waitFor()==0){out.print("backupsuccessn……
执行不成功
解决方案五:
String[]cmd={"/bin/sh",commandstr};p=Runtime.getRuntime().exec(cmd);