実行する Java 近似を使用して実装された apache-commons-exec を使用してスクリプトを実行しようとしています。このスクリプトは実稼働サーバー (Linux) で実行されますが、ローカルホストでテストして、すべてが正常に機能することを確認する必要があります。
cygwin を起動するコードは次のとおりです。このコードは cmd.exe で機能しますが、commons.exec を使用して起動しようとすると機能しません。
OutputStream outputStream = new ByteArrayOutputStream();
DefaultExecutor exec = new DefaultExecutor();
exec.setWatchdog(new ExecuteWatchdog(1000));
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
exec.setStreamHandler(streamHandler);
CommandLine cmdLine = CommandLine.parse("C:\\cygwin64\\bin\\bash");
cmdLine.addArgument("-c");
cmdLine.addArgument("/cygdrive/c/dev/launch.sh");
int exit = exec.execute(cmdLine);
logger.warn("Job exit: " + exit);
1 を返し、出力もログエラーもありません。
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
何か足りないものはありますか?出力を適切にキャッチするにはどうすればよいですか?