簡體   English   中英

Jsch-通過SSH連接發送命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM