从Java调用Python [英] Call Python from Java

查看:189
本文介绍了从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆