首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Jsch执行.sh脚本

无法使用Jsch执行.sh脚本
EN

Stack Overflow用户
提问于 2011-07-09 00:54:34
回答 2查看 8.1K关注 0票数 3

我正在尝试使用ssh api Jsch从我的java应用程序(在我的windows7工作站上)执行unix服务器中的脚本shell。

我使用的脚本外壳"start_lm“是一个C二进制文件。

这是我正在使用的代码(来自Jsch网站的例子)

代码语言:javascript
复制
      try{
      JSch jsch=new JSch();  

      Session session=jsch.getSession(user, host, 22);

      UserInfo ui=new MyUserInfo();
      session.setUserInfo(ui);
      session.connect();

      String command="user/psi/start_lm";

      Channel channel=session.openChannel("exec");
      ((ChannelExec)channel).setCommand(command);

      channel.setInputStream(null);

      ((ChannelExec)channel).setErrStream(System.err);

      InputStream in=channel.getInputStream();

      channel.connect();

      while(true){

        if(channel.isClosed()){
          System.out.println("exit-status: "+channel.getExitStatus());
          break;
        }
        try{Thread.sleep(1000);}catch(Exception ee){}
      }
      channel.disconnect();
      session.disconnect();
    }

我得到的错误是

exit-status:-1它是什么意思

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2011-07-09 01:09:14

这就是我认为的问题

代码语言:javascript
复制
". ./start_lm.sh

它应该在当前目录中提供的脚本下面

代码语言:javascript
复制
"./start_lm.sh

正如退出状态127所说的那样

代码语言:javascript
复制
127 "command not found" illegal_command 
票数 1
EN

Stack Overflow用户

发布于 2014-08-17 18:55:55

String command="/bin/sh /user/psi/start_lm.sh";

请尝试上面的方法,因为jsch可能使用非交互式shell。

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

https://stackoverflow.com/questions/6627766

复制
相关文章

相似问题

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