将args []传递给带有空格的java应用程序

gjw*_*w80 3 java bash

如果你通过bash脚本将arg传递给java应用程序,并且arg包含空格,那么如何让java app看到整个字符串作为arg而不只是第一个单词?例如,通过bash将以下两个args传递给java:

var1="alpha beta zeta"
var2="omega si epsilon"

script.sh $var1 $var2
Run Code Online (Sandbox Code Playgroud)

(在script.sh中)

#!/bin/bash
java -cp javaApp "$@"
Run Code Online (Sandbox Code Playgroud)

(在javaApp中)

param1 = args[0];
param2 = args[1];
Run Code Online (Sandbox Code Playgroud)

javaApp中我的param变量的值只得到单词,而不是整行:

"param1 is alpha"
"param2 is beta"
Run Code Online (Sandbox Code Playgroud)

我可以在javaApp中更改什么来查看通过args []传递的整个字符串作为参数而不仅仅是它遇到的第一个单词?

fge*_*fge 7

问题在于编写shell脚本的方式,而不是Java程序.

你需要引用参数:

script.sh "$var1" "$var2"
Run Code Online (Sandbox Code Playgroud)