我有以下短小的Python程序"test.py"
n = int(raw_input())
print n
我正在从以下Java程序“ProcessRunner.java”中执行上述程序。
import java.util.*;
import java.io.*;
public class ProcessRunner {
public static void main(String[] args) {
try {
Scanner s = new Scanner(Runtime.getRuntime().exec("python test.py").getInputStream()).useDelimiter("\\A");
System.out.println(s.next());
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
在执行该命令时,
java ProcessRunner
我无法以正确的格式将值“n”传递给Python程序,同时Java运行挂起。如何妥善处理此情况并从Java程序内部动态地向Python程序传递一个值到“n”?
exec
,使用ProcessBuilder
来创建进程。同时,将一个字符串参数arg
拆分成String[] args
,以考虑包含空格字符的路径等情况。 - Andrew Thompson