3

ssh api Jsch を使用して、(Windows 7 ステーションの) Java アプリケーションから UNIX サーバーでスクリプト シェルを実行しようとしています。

「start_lm」を使用しているスクリプト シェルは C バイナリです。

これは私が使用しているコードです(Jsch Webサイトの例からのものです)

      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 どういう意味ですか

助けてくれてありがとう。

4

2 に答える 2

1

私が信じている問題があります

". ./start_lm.sh

現在のディレクトリに存在する提供されたスクリプトの下にある必要があります

"./start_lm.sh

終了ステータス127が言うように

127 "command not found" illegal_command 
于 2011-07-08T17:09:13.950 に答える
0

文字列 command="/bin/sh /user/psi/start_lm.sh";

jsch が非対話型シェルを使用している可能性があるため、上記を試してください。

于 2014-08-17T10:55:54.563 に答える