使用Jsch执行远程服务器脚本

时间:2017-05-18 12:50:10

标签: java session jsch channel

我想使用jsch调用一个远程服务器脚本。 我有一个名为的服务器脚本: RunScript-位于远程服务器的路径:/ esj / programs / sample / scripts / RunScript 我打开了一个频道并将命令称为: String command =“ksh / esj / programs / sample / scripts / RunScript”;

但我收到的错误是: / esj / programs / sample / scripts / RunScript:SplWF:找不到。

我的代码是这样的:

        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, 22);
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.setPassword(password);
        session.connect();
        if(session.isConnected()){
        System.out.println("Connected sucessfully to server :" + host);
        Channel channel = session.openChannel("exec");
        ((ChannelExec)channel).setCommand(command);
       // ((ChannelExec)channel).setCommand(command2);
        channel.setInputStream(null);
        ((ChannelExec)channel).setErrStream(System.err);

RunScript看起来像: SplWF PostProc PostProcScript *******

SplWF是位于同一位置的另一个脚本(/ esj / programs / sample / scripts /)

如何成功运行脚本RunScript? 基本上,SplWF和RunScript与上面的路径相同 另外,我无法更改脚本的任何内容。我只想在不改变脚本的情况下从java程序中成功执行RunScript 注意 - *****表示脚本中存在的其他一些数据

1 个答案:

答案 0 :(得分:0)

RunScript 中使用./SplWFsh SplWF或将脚本目录添加到PATH环境变量中以继续使用SplWF