从Java调用Python [英] Call Python from Java
本文介绍了从Java调用Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从Java调用 python
脚本。我的python版本是2.5,Java是6。
我当前的代码:
try {
Process p = Runtime.getRuntime()。exec(path / dirs / file.py);
p.waitFor();
} catch(InterruptedException ex){
System.out.println(ex.getMessage());}
}
我收到的错误是:
Java.IO.IOException:无法运行程序filename:CreateProcess错误
= 193,%1不是有效的Win32应用程序
解决方案
尝试使用 PrecessBuilder
-
试试{
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);
过程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(例外e){System.out.println(e);}
有关更多详细信息,请参见此处。 / p>
I want to call a python
script from Java. My python version is 2.5 and Java is 6.
My current code:
try{
Process p= Runtime.getRuntime().exec("path/dirs/file.py");
p.waitFor();
} catch (InterruptedException ex){
System.out.println(ex.getMessage());}
}
The error I receive is:
Java.IO.IOException: Cannot run program filename: CreateProcess error = 193, %1 is not a valid Win32 application
解决方案
Try to use PrecessBuilder
-
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);}
See here from more detail.
这篇关于从Java调用Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文