system2の結果を取得できません。サンプルjarファイルを実行しようとしました。
execute_system.R:
workingDir <- "C:/Code"
setwd(workingDir)
command <- "Java -jar sample.jar 674"
commandResult <- system2(command, stdout="C:/Code/stdout.txt", stderr="C:/Code/stderr.txt")
cat("commandResult: ", commandResult)
これを実行するとエラーメッセージが表示されますexecute_system.Rファイルと空のファイルが生成されます(stdout.txt、stderr.txt)
commandResult: 127
warning message: running command '"Java -jar sample.jar 674"' had status 127
System2コマンドの結果を読み取りたいので、結果データを処理する必要があります。
同じコマンドプロンプトを実行すると、適切な結果が得られます
C:/Code>Java -jar sample.jar 123
convert from String to int...
Input: 123
Value: 123
Conversion process done!!!
実際の私のJavaコード
public class Conversion{
public static void main(String args[]){
System.out.println("convert from String to int...");
String input = args[0];
System.out.println("Input: " + input );
int value = Integer.valueOf(input)
System.out.println("Value: " + value);
System.out.println("Conversion process done!!!);
}
}
このJavaプログラムを実行可能なjarファイル(sample.jar)に変換しました。
私を助けてください。前もって感謝します。
あなたのコードを使用して、私が次のことをしたとき、それはエラーなしで私のために働きました:
system2('Java', args = c('-jar', 'sample.jar', '123'),
stdout = 'stdout.txt', stderr = 'stderr.txt')
これをMacOSX 10.10.5(Yosemite)で実行しました。結果は「stdout.txt」に出力されました。
system2
のドキュメントから、最初のオプションは単なるコマンド(つまり、引数なし)のようです。引数はargs
パラメーターで指定します。
Detailsセクションのスニペットは次のとおりです。
詳細
システムとは異なり、コマンドは常にshQuoteによって引用されるため、引数のない単一のコマンドである必要があります。
.。