我正在使用python script
方法从Java
执行Process
。我有这个代码部分,其中StringBuilder
具有以下结构:(val1,val2,...)
。
现在我有这部分代码使用Process
方法从Java代码中执行python脚本:
ProcessBuilder pb = new ProcessBuilder("python","test1.py");
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
int ret = new Integer(in.readLine()).intValue();
现在我想要的是首先检查我的StringBuilder
str
是否为空,即字符串只是()
而()
内str
内没有任何内容1}}。如果它不为空(即()
内有值),那么我需要将每个值作为单独的参数传递给我的python脚本Process
调用。例如,如果我的str
是(val1,val2)
,那么我需要在val1
调用中将val2
和Process
作为单独的参数传递,以便从内部执行python脚本Java代码。
如何修改当前代码以包含此内容?
答案 0 :(得分:0)
为什么要使用StringBuilder而不是仅仅传递参数?
new ProcessBuilder("python", "test1.py", "val1", "val2")
如有必要,您可以动态创建该参数数组。
List<String> args = new ArrayList<>();
args.add("python");
args.add("test1.py");
args.addAll(myOtherArgsThatICollectedInAList);
new ProcessBuilder(args.toArray(new String[0]);