首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsch -通过SSH连接发送命令

Jsch -通过SSH连接发送命令
EN

Stack Overflow用户
提问于 2014-03-14 13:18:36
回答 1查看 1.3K关注 0票数 2

我想在windows计算机上发送一个带有java应用程序的简单命令,以激活raspberry Pi上的python脚本,该脚本应该控制raspberry pi的GPIO端口。

我不太喜欢Jsch,我的SSH连接已经工作了,但没有发送命令。

以下是我的实际代码:

代码语言:javascript
复制
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();
    }
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 13:25:42

您应该使用ChannelExec.setCommand(java.lang.String)启动它,并等待Channel.isClosed()返回false。顺便说一句,JSch有一个例子:http://www.jcraft.com/jsch/examples/Exec.java.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22406137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档