在Linux系统下用java执行系统命令实例讲解

在Linux系统下用Java执行系统命令例子:

要根据你的系统写一个同的脚.因为不同的系统在创建用户时交互命令不同,比如\r
<代表输入\r
>代表终端输出:

#useradd username<
linux下就行了.只要从WEB得到username,
然后调用Runtime.getRuntime().exec("useradd "+username);
就可以.

#passwd username<
#>palese input new passwd://不一定象我这样的提示.
#1234567<
#>确认提示
#<1234567
有的系统这时就OK了,有的还要什么fullname什么的.你要知道你的系统的过程.
然后我们来编程:


Process p1 = Runtime.getRuntime().exec("useradd "+username);
//不要交互
Process p2 = Runtime.getRuntime().exec("passwod "+username);
//这个过程要交互
BufferedReader in = new Buffered(new InputStreamReader(p2.getInputStream()));

OutputStreamWriter out = new OutputStreamWriter (p2.getOutputStream());
String line="";
while((line = in.readLine()) != null)
{
if(-1 !=line.indexOf("等待输入密码的提示"))
out.print(passwd+"\r\n");
if(-1 !=line.indexOf("等待再次输入密码的提示"))
out.print(passwd+"\r\n");
if(-1 !=line.indexOf("成功提示"))
break;
}


in.close();
out.close();
这样就用JAVA程序执行了一个系统命令

public void CmdExec(String[] cmdline) {
        try {
            String line;
            Process p = null;
            if (p != null) {
                p.destroy();
                p = null;
            }
          
            p = Runtime.getRuntime().exec(cmdline);
            BufferedReader input = new BufferedReader(new InputStreamReader(p
                    .getInputStream()));
            line = input.readLine();
            while (line != null) {
                line = input.readLine();
                System.out.println(line);
            }
            input.close();
            p.waitFor();
            int ret = p.exitValue();
            System.out.println(ret);
        } catch (Exception err) {
            err.printStackTrace();
        }
    }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwzxx.html