木丰雨 发表于 2012-1-3 16:00:19

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.ssh2.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.1close();   /*Closetheconnection*/   conn.close();   }   catch(IOExceptione)   {   e.printStackTrace(System.err);System.exit(2);   }   }   }   在控制台我们将看到输入结果。  很简单,不过,了解其中的原理,要费一番的周折了,当前再给大家讲一些原理方面的东西。
页: [1]
查看完整版本: Java应用程序远程登录linux并执行其命令