我有一个用python编写的脚本,我想在JAVA中完成一个进程后才触发它。 我怎么能触发它?
答案 0 :(得分:0)
不确定我是否正确理解了您的问题,但如果您可以从控制台调用Python可执行文件并且只想在Java中捕获其输出,则可以使用Java Runtime类中的exec()方法。
Process p = Runtime.getRuntime().exec("python yourapp.py");
您可以在这里阅读如何实际读取输出:
http://www.devdaily.com/java/edu/pj/pj010016
还有一个Apache库(Apache exec项目)可以帮助您解决这个问题。你可以在这里阅读更多相关信息:
http://www.devdaily.com/java/java-exec-processbuilder-process-1
答案 1 :(得分:0)
另一种更新的方法是使用ProcessBuilder
类,这为参数提供了更多的结构。
您可以阅读ProcessBuilder
文档here。
class test2 {
public static void main(String a[]) {
try {
String prg = "import sys\nprint int(sys.argv[1])+int(sys.argv[2])\n";
BufferedWriter out = new BufferedWriter(new FileWriter("test1.py"));
out.write(prg);
out.close();
int number1 = 10;
int number2 = 32;
ProcessBuilder pb = new ProcessBuilder("python", "test1.py", ""
+ number1, "" + number2);
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream()));
int ret = new Integer(in.readLine()).intValue();
System.out.println("value is : " + ret);
} catch (Exception e) {
System.out.println(e);
}
}
}
为了更好地理解,请参阅this post.