标题:
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.
1
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.close(); /*Closetheconnection*/ conn.close(); } catch(IOExceptione) { e.printStackTrace(System.err);System.exit(2); } } }
在控制台我们将看到输入后果。
很简单,不过,了解其中的原理,要费一番的周折了,以后再给大家讲一些原理方面的东西。
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0