A veces es posible que deba usar el código para controlar la ejecución de los comandos de Linux para implementar ciertas funciones.
Para este tipo de problema, JSCH se puede usar para implementarlo. El código específico es el siguiente:
clase pública CogradientimgFilemanager {private static final logger log = loggerFactory.getLogger (cogradientimgFilemanager.class); canal de canal de canal de canal de estatía estática privada; sesión static session session = null; private static int timeOut = 60000; // Test Code public static void main (string [] args) {try {VersousShutil ("10.8.12.189", "jmuser", "root1234", 22); runcmd ("java -version", "utf-8");} capt (excepción e) {// todo generated capt blocke.printStackTrace();}}/*** Connect to the remote server* @param host ip address* @param userName Login name* @param password Password* @param port port* @throws Exception*/public static void versouSshUtil(String host,String userName,String password,int port) throws Exception{log.info("Try to connect to....host:" + host + ",username:" + nombre de usuario + ", contraseña:" + contraseña + ", puerto:" + puerto); jsch jsch = new jsch (); // Crear sesion de objeto JSCH = jsch.getSession (nombre de usuario, host, puerto); // Obtener un objeto de sesión Session.setPassword (contraseña); // Establecer propiedades de contraseña config = new Properties (); config.put ("stricthostKeyChecking", "no"); session.setConfig (config); // establecer Propertiessession.SetTimeOut (Tiempo de espera); // establecer TimeOut session.connect (); // Crear enlace a través de la sesión}/*** Ejecutar el comando en un servidor remoto* @param CMD String de comando para ejecutar* @param encoding* @throws excepción*/public static void runcmd (string cmd, string charset) lanza la excepción {canalExec = (canalExec) session.openchannel ("exec"); canalExec.setCommand (cmd); canalExec.setInputStream (null); canalExec.setErrStream (system.err); canalExec.connect (); inputStream in = canalExec.getInputStream (); BuffererDer lector = new BufferedReader (new InputSeamReader (in, in, in, Charset.forneRet); buf = null; while ((buf = lector.readline ())! = null) {system.out.println (buf);} lector.close (); canalExec.disconnect ();}}