2016-10-14 58 views
0

リモートマシンでシェルスクリプトを実行する必要があります。 JSchを使ってリモートマシンに接続し、を使ってシェルスクリプトを実行しています。 コマンドの実行中にエラーが発生した場合、どのように私が知ることができるかを知る必要があります。続きエラーのJSch Exec出力

は、車輪を再発明するしないでください、私のコード「実行」チャネルのための公式の例で

ChannelExec channel = (ChannelExec) session.openChannel("exec"); 

BufferedReader in = new BufferedReader(new InputStreamReader(channel.getInputStream()));  
String command = scriptName; 
if(parameter != null && !parameter.isEmpty()){ 
    command += " " + parameter; 
} 

LOGGER.debug("Command To be Executed: " + command);    

channel.setCommand(command); 
channel.connect(); 

//capture output 
String msg; 

StringBuffer output = new StringBuffer(); 
while ((msg = in.readLine()) != null) 
{ 
    //output = output + msg; 
    output.append(msg); 
} 

LOGGER.debug("Output Message = " + output.toString()); 

LOGGER.debug("ERROR STATUS --" + channel.getExitStatus()); 

channel.disconnect(); 
session.disconnect(); 
+0

エラーのように、私は実行権限を持っていけないその上でスクリプトを実行しようとしています。 –

+0

あなたのコードを教えてください! –

+0

がメインの質問に追加されました –

答えて

0

スタートです:
http://www.jcraft.com/jsch/examples/Exec.java.html

がエラーを読み取るために、また読みエラーストリームはChannelExec.getErrStreamです。

または出力とエラーが一つにストリームをマージ:
How to get one stream from error stream and input stream when calling a script using JSCH

+0

あなたのアドバイスに従っていただきありがとうございます:) –

+0

私はこのフォーラムに非常に新しいです:) ....それを今受け入れて... –

関連する問題