Terkadang Anda mungkin perlu menggunakan kode untuk mengontrol eksekusi perintah Linux untuk mengimplementasikan fungsi tertentu.
Untuk jenis masalah ini, JSCH dapat digunakan untuk mengimplementasikannya. Kode spesifiknya adalah sebagai berikut:
Kelas Publik CogradientImgFileManager {private static final Logger log = loggerFactory.getLogger (cogradientimgfileManager.class); private static channelexec channelexec; sesi statis privat = null; private static int timeout = 60000; // Kode uji public static void main (string [] args) {try {versousshutil ("10.8.12.189", "jMuser", "root1234", 22); runcmd ("java -version", "UTF-8");} Catch (Exception e) {// too-outo-Genering blocke.printstacktrace ();}}/*** Sambungkan ke server jarak jauh* @param host alamat ip* @param nama pengguna nama* @param kata sandi* @param port port* @throws Excection*/public static void versousshutil (string host, string username, string kata sandi, int port) host {log. ", nama pengguna:" + nama pengguna + ", kata sandi:" + kata sandi + ", port:" + port); jsch jsch = jsch baru (); // Buat sesi objek JSCH = jsch.getSession (nama pengguna, host, port); // Dapatkan sesi sesi session.setPassword (kata sandi); // atur kata sandi properti config = new properties (); config.put ("stricthostKeyChecking", "no"); session.setConfig (config); // atur propertiession.setTimeout (timeout); // atur timeout session.connect (); // Buat tautan melalui sesi}/*** Jalankan perintah pada server jarak jauh* @param cmd command string yang akan dieksekusi* @param charset encoding* @throws Exception*/public static void runcmd (String CMD, String Charset) melempar pengecualian {channelexec = (channelexec) 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 (); channelexec.disconnect ();}}