我有一个python程序,我从命令行获取参数,下面的python脚本将使用JAVA代码运行,运行时
从Ubuntu终端:
python3 testingArg.py "My String With Spaces"
Import sys
print(sys.argv[1])
这是打印的My String With Spaces
Java代码:
Process p = Runtime.getRuntime().exec("python3 testingArg.py "+""My String With Spaces"");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = in.readLine())!=null) {
System.out.println(s);
}
打印为"My"
,字符串的其余部分将被截断。
使用默认的标记器将命令字符串标记为参数,该标记器仅在空白处拆分-不考虑引号。
在我看来,你最好自己做标记化(这很琐碎,因为你知道你有一个参数,所以不需要代码(,并使用exec的数组形式。
String args[] = { "python3", "testingArg.py" , "My String With Spaces" };
Runtime.getRuntime().exec(args);
";命令串";您当前使用的表单本质上是将字符串标记为一个数组,但它使用了一种您不满意的算法,所以跳过它,自己制作合适的数组。