无法使用 Jsch 执行 .sh 脚本

发布于 2024-11-19 01:15:09 字数 1026 浏览 2 评论 0原文

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

我使用的脚本 shell“start_lm”是一个 C 二进制文件。

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

      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 这意味着什么,

感谢您的帮助。

i'm trying to execute a script shell in a unix server from my java application (on my windows seven station) using the ssh api Jsch.

the script shell i'm using "start_lm" is a C binary.

this is the code i'm using (it's from the Jsch website exemples)

      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();
    }

the error i'm getting is

exit-status: -1 what does it mean

thanks for ure help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失而复得 2024-11-26 01:15:09

我认为存在问题,

". ./start_lm.sh

它应该位于当前目录中提供的脚本下方

"./start_lm.sh

,退出状态 127 表示

127 "command not found" illegal_command 

There's the problem I believe

". ./start_lm.sh

It should be below provided script present in current directory

"./start_lm.sh

as exit status 127 says

127 "command not found" illegal_command 
初懵 2024-11-26 01:15:09

字符串命令=“/bin/sh/user/psi/start_lm.sh”;

请尝试上述操作,因为 jsch 可能使用非交互式 shell。

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

Please try the above, for jsch might be using an non-interactive shell.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文