[英]Jsch - Sending command over SSH connection
我想通過Windows計算機使用Java應用程序發送一個簡單命令來激活樹莓派上的python腳本,該腳本應控制樹莓派的GPIO端口。
我不太喜歡Jsch,我的SSH連接已經可以使用,但是無法發送命令。
這是我的實際代碼:
package sshtest;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import com.jcraft.jsch.*;
import java.io.InputStream;
public class SSHTest {
public static void main(String[] args) {
String host="DELETED";
String user="pi";
String password="DELETED";
String command =("cd Desktop");
String command2 =("sudo python IO2.py all high");
try{
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();
System.out.println("Connected");
Channel channel = session.openChannel("exec");
InputStream is = new ByteArrayInputStream(command.getBytes());
channel.setInputStream(is);
InputStream iss = new ByteArrayInputStream(command2.getBytes());
channel.setInputStream(iss);
session.disconnect();
}catch(Exception e){
e.printStackTrace();
}
}
}
您應該使用ChannelExec.setCommand(java.lang.String)
來啟動它,並等待Channel.isClosed()
返回false
。 順便說一句,JSch為此提供了一個示例: http : //www.jcraft.com/jsch/examples/Exec.java.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.