1

jarファイルを実行しているシェルスクリプトrun.shがあります。

#!/bin/bash
"$JAVA_HOME"/bin/java -jar test.jar $1 $2 $3

Java ですべてのプロセスを実行した後、コマンドを実行する必要があります。したがって、私の Java メソッドは、いくつかの引数を渡してシェル スクリプトを呼び出します。

public static void Test(String Arg1, int Arg2, int Arg3, String Arg4) throws IOException, InterruptedException {

            File currentLocation = new File(Test.class.getProtectionDomain().getCodeSource().getLocation().getPath());

            String executeShellScript = currentLocation.getParentFile().toString() + "/out.sh";

           //SOME LOGIC

            ProcessBuilder pb = new ProcessBuilder("/bin/sh",executeShellScript,arg1, arg2, arg3, arg4);
            pb.redirectErrorStream(true);

            Process p = pb.start();
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = null;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

        }

そして、out.sh で引数を受け取り、コマンドを実行します。

#!/bin/bash

IMAGE=$1
ROW=$2
COLUMN=$3
DESTINATION=$4
echo $IMAGE

すべての引数を取得して、同じスクリプト (run.sh) から jar の出力を実行および処理できるかどうか疑問に思っていました。

4

1 に答える 1

1

jar の出力をファイル (run.sh の $3 の後の >out.txt) にリダイレクトし、そのファイルを run.sh で処理できます。または、出力をパイプ (|) できます。

于 2012-10-10T12:29:34.020 に答える