Board logo

标题: Java应用程序远程登录linux并执行其命令 [打印本页]

作者: qingqing3721    时间: 2011-8-19 11:45     标题: Java应用程序远程登录linux并执行其命令

ganymed.ethz.ch/ssh2/在这个网址下载一个调用ssh和scp命令的jar包。
  然后,就可以写程序了。将上面的jar包导入MyEclipse,上面是一个类的实例代码。




  packagehh;   importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;   importch.ethz.ssh2.Connection;importch.ethz.ssh2.Session;importch.ethz.1ssh2.StreamGobbler;   publicclassBasic   {   publicstaticvoidmain(String[]args)   {   Stringhostname="222.177.211.9";   Stringusername="boss";   Stringpassword="qwer@1234";   try   {   /*Createaconnectioninstance*/   Connectionconn=newConnection(hostname);   /*Nowconnect*/   conn.connect();   /*Authenticate*/   booleanisAuthenticated=conn.authenticateWithPassword(username,password);   if(isAuthenticated==false)   thrownewIOException("Authenticationfailed.");   /*Createasession*/   Sessionsess=conn.openSession();   //sess.execCommand("uname-adateuptimewho");   sess.execCommand("psaux");   System.out.println("Hereissomeinformationabouttheremotehost:");   InputStreamstdout=newStreamGobbler(sess.getStdout());   BufferedReaderbr=newBufferedReader(newInputStreamReader(stdout));   while(true)   {   Stringline=br.readLine();   if(line==null)   break;   System.out.println(line);   }   /*Showexitstatus,ifavailable(otherwise"null")*/   System.out.println("ExitCode:"+sess.getExitStatus());   /*Closethissession*/   sess.close();   /*Closetheconnection*/   conn.close();   }   catch(IOExceptione)   {   e.printStackTrace(System.err);System.exit(2);   }   }   }
  在控制台我们将看到输入后果。
  很简单,不过,了解其中的原理,要费一番的周折了,以后再给大家讲一些原理方面的东西。




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0