を呼び出すために、私は、リモートのLinuxマシン上でコマンドを実行したいですremote_commandに渡す文字列を含むローカルマシン上のファイル。ローカルマシンのコマンドラインでこれを実行すると、そのコマンドがリモートマシンに正しい影響を与えることを確認できます。しかし、私は次のようにProcessBuilderをを使用してJavaアプリケーション内でこれを実行する必要があります。ProcessBuilderをとsshが1台のLinuxマシンからリモートコマンド
processBuilder = new ProcessBuilder("ssh [email protected]_server remote_command < local_script");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
process = processBuilder.start();
私はこれを行うと、私は常にエラーを取得:
のzsh:1:そのようなファイルやディレクトリはありません:LOCAL_SCRIPT
をなど私が試してみましたバリエーション:
processBuilder = new ProcessBuilder("ssh", "[email protected]_server remote_command < local_script");
processBuilder = new ProcessBuilder("ssh", "[email protected]_server", "remote_command < local_script");
processBuilder = new ProcessBuilder("ssh", "[email protected]_server", "remote_command", "<", " local_script");
が、何も動作するようです。私は、pwdを実行すると、予想されるディレクトリが与えられ、ProcessBuilderを使って実行するときにcatを使ってlocal_scriptを読むことができることを検証したので、sshコマンドの処理方法とは何かを仮定しなければなりません。何か案は?
AFAIK "cwd"から何かを実行するための '/ some_script' –