シェルスクリプトからJavaに配列を渡す

シェルスクリプトからJavaに配列を渡す

シェルスクリプトからJava基本メソッドにすぐに渡したい次のデータがあります。

1  firstfile.txt   Success
2  secondfile.txt  Failed
3  thirdfile.txt   Success

次のようにjavaを呼び出すことができることを知っています。ここで、合計はvar1単一のvar2文字列を表します。

java $myJava "$var1" "$var2" 

しかし、上記のデータをJavaに配列として渡すことはできますか?

答え1

コマンドラインを介してシェルスクリプトからJava配列を渡すことはできません。配列を表す文字列のリストを渡すことができます。

例えば、

a=(
    '1  firstfile.txt   Success'
    '2  secondfile.txt  Failed'
    '3  thirdfile.txt   Success'
)

printf "We will pass %d parameters:" ${#a[@]}; printf " '%s'" "${a[@]}"; printf "\n"
java "$myjava" "${a[@]}"

ステートメントでWe will pass...パラメータとスペースで区切られた単語の違いを示すために、文字列の周りに引用符を追加しました。 Javaプログラムで引用符を表示できません。

関連情報