使用ProcessBuilder使用命令行选项执行python脚本

为了从Java执行python脚本(它有几个命令行参数),我试图使用的是以下java代码

String[] command = {"script.py", "run", "-arg1", "val1", "-arg2", "val2" , "-arg3" , "val_31 val_32", }; ProcessBuilder probuilder = new ProcessBuilder( command ); Process process = probuilder.start(); 

例如,我打算执行以下命令:

 ./script.py run -arg1 val1 -arg2 val2 -arg3 val_31 val_32 

请注意,参数arg3采用参数值列表。

我面临的问题是我没有找到将值列表传递给参数arg3的方法。

如果有人能给我一些提示来解决我的问题,我真的很感激。

我已经进行了搜索,但找不到合适的答案,如果有人找到正确的链接,请告诉我。

最好!

只需将它们作为单独的字符串放在数组中,而不是将最后两个组合成"val_31 val_32"

 String[] command = {"script.py", "run", "-arg1", "val1", "-arg2", "val2" , "-arg3" , "val_31", "val_32", }; 

否则它会逃脱val_31val_32之间的空间,因为你告诉它它们是一个参数。 顺便提一下,如果需要,您还可以使用varargs构造函数并跳过必须创建数组:

 ProcessBuilder probuilder = new ProcessBuilder( "script.py", "run", "-arg1", "val1", "-arg2", "val2" , "-arg3" , "val_31", "val_32");