我有如下数据,我想立即从 shell 脚本直接传递到 Java main 方法。
1 firstfile.txt Success
2 secondfile.txt Failed
3 thirdfile.txt Success
我知道我可以按如下方式调用 java,其中var1
和var2
只代表单个字符串:
java $myJava "$var1" "$var2"
但是我是否可以将上面的数据作为数组传递给Java?
答案1
您无法通过命令行从 shell 脚本传递 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 程序看不到引号。