في بعض الأحيان قد تحتاج إلى استخدام التعليمات البرمجية للتحكم في تنفيذ أوامر Linux لتنفيذ وظائف معينة.
لهذا النوع من المشكلات ، يمكن استخدام JSCH لتنفيذها. الرمز المحدد كما يلي:
الطبقة العامة cogradientimgfileManager {private static final logger log = loggerfactory.getLogger (cogradientimgfileManager.class) ؛ channelexec static static static ؛ جلسة جلسة ثابتة خاصة = null ؛ int static private = 60000 ؛ // Test Code Public Static Void Main (String [] args) {try {versousshutil ("10.8.12.189" ، "jmuser" ، "root1234" ، 22) ؛ runCMD ("java-version" ، "utf-8") ؛ إلى خادم Remote* @Param Host IP عنوان IP* Param اسم المستخدم اسم تسجيل الدخول* Param Password Password* Param Port Port* athrows استثناء*/public static void voidshutil (مضيف سلسلة ، اسم مستخدم السلسلة ، كلمة مرور ، use port) int) استثناء {log.info ("حاول الاتصال بـ .... مضيف:" + مضيف + "، username:" PORT) ؛ JSCH JSCH = New JSCH () ؛ // إنشاء جلسة كائن JSCH = jsch.getSession (اسم المستخدم ، المضيف ، المنفذ) ؛ // احصل على كائن جلسة Session.setPassword (كلمة المرور) ؛ // قم بتعيين خصائص كلمة المرور config = new properties () ؛ config.put ("StricThoStkeyChecking" ، "no") ؛ session.setConfig (config) ؛ // set propertiessession.settimeout (timeout) ؛ // set timeout session.connect () ؛ // إنشاء رابط من خلال الجلسة}/*** تنفيذ الأمر على خادم بعيد عن خادم بعيد* @param cmd لتنفيذ* @param charset الترميز* athrows استثناء*/public static void runcmd (String cmd ، string Charset) استثناء {channelexec = (channelexec) session.openchannel ("exec") ؛ channelexec.setCommand (cmd) ؛ channelexec.setinputstream (null) ؛ channelexec.seterrstream (system.err) ؛ channelexec.connect () charset.forname (charset)))) ؛ سلسلة buf = null ؛ بينما ((buf = reader.readline ())! = null) {system.out.println (buf) ؛} reader.close () ؛ channelexec.disconnect () ؛}}