บางครั้งคุณอาจต้องใช้รหัสเพื่อควบคุมการดำเนินการของคำสั่ง Linux เพื่อใช้ฟังก์ชั่นบางอย่าง
สำหรับปัญหาประเภทนี้ JSCH สามารถใช้ในการใช้งานได้ รหัสเฉพาะมีดังนี้:
คลาสสาธารณะ cogradientimgfileManager {logger สุดท้ายคงที่ logger log = loggerFactory.getLogger (cogradientimgfileManager.class); channelexec channelexec ส่วนตัวส่วนตัว; เซสชันคงที่ส่วนตัว = null; // รหัสทดสอบโมฆะสาธารณะคงที่หลัก (สตริง [] args) {ลอง {versousshutil ("10.8.12.189", "jmuser", "root1234", 22); runcmd ("java -version", "utf-8"); blocke.printstacktrace ();}}/*** เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล* @param โฮสต์ที่อยู่ IP* @param ชื่อผู้ใช้ชื่อล็อกอิน* @param รหัสผ่านรหัสผ่าน* @param พอร์ตพอร์ต* @throws ยกเว้น*/โมฆะสาธารณะ ชื่อผู้ใช้ + ", รหัสผ่าน:" + รหัสผ่าน ", พอร์ต:" + พอร์ต); jsch jsch = new JSCH (); // สร้าง jsch object session = jsch.getSession (ชื่อผู้ใช้, โฮสต์, พอร์ต); // รับ Session Object Session.setPassword (รหัสผ่าน); // ตั้งค่าคุณสมบัติรหัสผ่าน config = new properties (); config.put ("StricthostkeyChecking", "no"); session.setConfig (config); // ตั้งค่า propertiessession.settimeout (หมดเวลา); // ตั้งค่าการหมดเวลาเซสชันการเชื่อมต่อ (); // สร้างลิงก์ผ่านเซสชัน}/*** คำสั่งดำเนินการบนเซิร์ฟเวอร์ระยะไกล* @param cmd สตริงคำสั่งที่จะดำเนินการ* @param charset encoding* @throws exception*/โมฆะสาธารณะคงที่ runcmd (สตริง cmd, charset สตริง) โยนข้อยกเว้น {channelexec = (channelexec session.openchannel ("exec"); channelexec.setCommand (cmd); channelexec.setinputstream (null); channelexec.seterstream (system.err); channelexec.connect (); inputstream ใน = channelexec.getInputStream (); buf = null; ในขณะที่ ((buf = reader.readline ())! = null) {system.out.println (buf);} reader.close (); channelexec.disconnect ();}}}