Parfois, vous devrez peut-être utiliser le code pour contrôler l'exécution des commandes Linux pour implémenter certaines fonctions.
Pour ce type de problème, JSCH peut être utilisé pour l'implémenter. Le code spécifique est le suivant:
classe publique CogradiEntimgFileManager {private static final logger log = loggerfactory.getLogger (cograditimgfileManager.class); private static cannexec cannexec; session statique privée = 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 Connectez-vous au serveur distant * @Param Host IP Adresse * @param nom de connexion nom * @param mot de passe mot de passe * @param port du port * @throws exception * / public static void versousshutil (hôte de chaîne, string username, string mot de passe, int port) lance l'exception {Log.info ("essayez de se connecter à ... port); jsch jsch = new jsch (); // Créer JSCH Object Session = jsch.getSession (nom d'utilisateur, hôte, port); // Obtenez un objet de session Session.SetPassword (mot de passe); // Définir les propriétés du mot de passe config = new Properties (); config.put ("stricThostKeyChecking", "no"); session.setConfig (config); // Définir ProperTesession.SetTimeout (TimeOut); // définir le délai de tempsout.connect (); // Créer un lien via session} / *** EXECUTER COMMAND sur un serveur distant * @param cmd Command String à exécuter * @param charset Encoding * @throws exception * / public static void runcmd (string cmd, string charset) lève exception {channelExec = (charrexec) session.openChannel("exec");channelExec.setCommand(cmd);channelExec.setInputStream(null);channelExec.setErrStream(System.err);channelExec.connect();InputStream in = channelExec.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forname (charset))); string buf = null; while ((buf = reader.readline ())! = Null) {System.out.println (buf);} reader.close (); charrexec.disconnect ();}}