0

WinSCPツールのプロセスを起動してUnixマシンに接続し、Unixマシンにあるxxxx.exeを呼び出すJavaコードがあります。

問題は、xxxx.exeがファイルタイプのパラメータを受け入れることです。したがって、これをリモートマシンにアップロードしてから、xxxx.exe ....に渡す必要があります。これは失敗しており、一時フォルダーをできるだけ回避しようとしています。

小さなコード

Process p = Runtime.getRuntime().exec("rTool\\WinSCP.com /script=folder\\code.txt < C:\\FILESTOUPLOADS\\upload1.txt" );

ログイン情報は、code.txtによってサポートされているように入力されますWinSCP.com

4

2 に答える 2

1

ファイルリダイレクト(つまり、「<」記号)は、をRuntime.exec()使用しないコマンドプロセッサで処理されます。すでにコメントで述べたように、コマンドの解析で問題が発生しないように、最初にString[]バージョンのexecを使用してください。次に、コマンドプロセッサを呼び出して、ファイルのリダイレクトを処理するか(たとえば、「cmd.exe / k」を使用)、Javaで自分で処理する必要があります。

于 2012-08-22T14:52:10.407 に答える
0

ProcessBuilder 作業ディレクトリを変更し、そのディレクトリからファイルのパスを設定するために使用しないのはなぜですか

public ProcessBuilder ディレクトリ (ファイル ディレクトリ) このプロセス ビルダーの作業ディレクトリを設定します。その後、このオブジェクトの start() メソッドによって開始されたサブプロセスは、これを作業ディレクトリとして使用します。引数は null の場合があります。これは、現在の Java プロセスの作業ディレクトリ (通常はシステム プロパティ user.dir で指定されたディレクトリ) を子プロセスの作業ディレクトリとして使用することを意味します。

パラメータ: directory - 新しい作業ディレクトリ 戻り値: このプロセス ビルダー

于 2012-08-22T14:54:45.687 に答える