Às vezes, pode ser necessário usar o código para controlar a execução dos comandos do Linux para implementar determinadas funções.
Para esse tipo de problema, o JSCH pode ser usado para implementá -lo. O código específico é o seguinte:
classe pública CogradientImgfilemanager {private estático logger final log = loggerFactory.getLogger (cogradientImgfilemanager.class); private Static ChannelExec ChannelExec; sessão estática privada = nulo; private static int timeout = 60000; // Código de teste public static void main (string [] args) {try {versousShutil ("10.8.12.189", "jmuser", "root1234", 22); runcmd ("java -version", "utf-8");} catch (exceção e) {// para a-version ", Conecte -se ao servidor remoto* @param host Endereço IP* @param nome de usuário Nome de login* @param senha senha* @param porta porta* @throws Exceção*/public static void versoussshutil (string host, string userName, string senha, intt) lança Exceção {log.info ("uses Tente conectar -se a .... host:" Host + " porta); jsch jsch = new jsch (); // Crie JSCH Object Session = jsch.getSession (nome de usuário, host, porta); // Obtenha um objeto de sessão session.setpassword (senha); // Definir Propriedades da senha Config = new Properties (); config.put ("stricThostKeyChecking", "não"); session.setConfig (config); // Definir Propertiession.SetTimeout (Timeout); // Definir timeout session.connect (); // Criar link através da sessão}/*** Execute o comando em um servidor remoto* @param cmd comando string a ser executado* @param charset coding* @throws Exception*/public static void runcmd (string cmd, string charset) lança exceção {ChannelExeC = (canalxec) session.OPENCHANNEL ("EXEC"); ChannelExec.SetCommand (CMD); ChannelExec.SetInputStream (NULL); ChannelExec.SterStream (System.err); ChannelExec.Connect (); inputStream in = ChannelExec.GetInStream (); BuffErader Reader = ThowReadedReader (THURSTEREN (NEWPURTER (NEWSTReam em = ChannelExec.GetInTream (); Charset.ForName (charset))); string buf = null; while ((buf = reader.readline ())! = Null) {System.out.println (buf);} leitor.close (); canalxec.disconnect ();}}}}