3

Javaプログラムでbashスクリプトファイルを実行しようとしていますが、この方法を使用しています:

Runtime rt = Runtime.getRuntime();

try {           
  Process proc = rt.exec("THE PATH FILE");        
  BufferedReaderinput=newBufferedReader(newInputStreamReader(proc.getInputStream()));
  String line=null;
  while((line=input.readLine()) != null) {
    System.out.println(line);
   }
} catch (IOException ex) {
  System.out.println(ex.toString());
}

しかし、コマンドラインから実行しているときにbashスクリプトで入力を$1として使用していて、Javaプログラムでそれを使用して正しい出力を取得したい. Java プログラムでこれを行うにはどうすればよいですか?

4

2 に答える 2

1

Mike Thomsen が提案したように、コマンド ライン引数を Java アプリケーションに取得し、スクリプト ファイルに次のように渡すことができます。

StringBuilder cmdLineArgs = new StringBuilder();  

for(String arg:args){   //in case you may have variable number of arguments
    cmdLineArgs.append(arg).append(" ");
}

ここで、cmdLineArgsで収集された引数をスクリプトに渡します。

Process proc = rt.exec("YOUR SCRIPT " + cmdLineArgs.toString()); 
于 2012-11-10T15:44:45.320 に答える
1

Java アプリで入力を読み取り、次のような新しいプロセスを起動します。

bash myfile.sh arg[0] arg[1] arg[n]
于 2012-11-10T15:21:40.433 に答える