这个!你可以试试通过JAVA的文件操作修改LINUX下的用户配置文件,好象是什么shadow文件,不过我想这样不是很安全,好点的做法是通过JAVA调用LINUX的系统命令(修改密码的命令),就可以了!

解决方案 »

  1.   

    改shadow不安全﹐如果用java直接調用passwd命令﹐系統要求輸入舊密碼和新密碼﹐沒法在一句命令中搞定啊?
      

  2.   

    用Process.getInputStream和Process.getOutputStream获取stdin和stdout,然后用这两个流与passwd命令交互,可能可以。
      

  3.   

    使用输入输出
    Process.getInputStream();
    Process.getOutputStream();
    另外没有一条的命令吗!?你看看PASSWD的参数,可能可以一下自输入的!
    JAVA中有重定向吗!?
      

  4.   

    好几天沒搞這個﹐今天搞一個﹐還是有問題
    我是按下面的方法寫的﹐但輸入流只能讀出一行﹐讀完之後流就結束了﹐無法進行交互
    public class ChangePasswd {  public static void main(String[] args) {
        try{
          Process pro = Runtime.getRuntime().exec("passwd");
          BufferedReader in = new BufferedReader(
                                  new InputStreamReader  (pro.getInputStream()));
          PrintWriter out = new PrintWriter(pro.getOutputStream());
          out.println("");
          out.flush();
          String line;
          while((line = in.readLine()) != null) {
            if (line.length() == 0) break;
            out.print(line+"\n");
            System.out.println(line);
          }
          out.println("abcd");
          out.flush();
          while((line = in.readLine()) != null) {
            if (line.length() == 0) break;
            out.print(line+"\n");
            System.out.println(line);
          }
        }catch(Exception e){    }
      }
    }
    程序運行後﹐只會出來
    change password for xxx
    到這里就結束了﹐不理會以後的輸入
    我到底要怎樣實現交互呢?各位高手請一定要看一看﹐幫我解決問題的人另開貼﹐給200分﹐關注者有分,決不失言