0

Java から簡単な bash スクリプトを実行できません。具体的には:

...

try{
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
pb.directory(new File(dir));
Process shell = pb.start();
int exitVal = shell.waitFor();

... ここで、'command' はすべて実行可能な bash スクリプトへの絶対パスであり、'dir' は作業ディレクトリです。

プログラムを実行すると、終了コード 127 (「コマンドが見つかりません」) が表示されます。Java ランタイム クラスと process.exec メソッドを使用してみましたが、どちらもうまくいきませんでした。助言がありますか?

4

2 に答える 2

0

「コマンド」が bash スクリプトの場合、「/bin/bash」(およびあなたが行っているような誤った「-c」) を ProcessBuilder に渡す代わりに、コマンドが実行可能であることを確認してください (chmod +x コマンド)。最初の行が#!/bin/bashであることを確認し、それへのフル パスを ProcessBuilder に渡します。

于 2010-02-13T20:15:05.757 に答える
0

いいえ -c。これは、スクリプトが -c の引数であることを意味します。パス名を渡していますが、そのために -c を使用していません。

于 2010-02-13T20:07:24.843 に答える