使用webservice技术建立跨语言接口调用,由java程序发启并调用pyhon程序
使用mq,以消息做为调用方式,python程序在接收到mq消息后触发相应的程序
使用RuntimegetRuntime()exec()直接执行py程序可以查看一下你的脚本的编码格式是否和你cmd环境的编码格式一致
windows环境下使用gb2312
python脚本中如果使用utf-8的话,则增加
#
--
coding:
utf-8
--
在脚本中可以修改你的编码格式,
方法如下:
sysgetdefaultencoding()
reload(sys)
syssetdefaultencoding('UTF-8')
sysgetdefaultencoding()
这里的'utf-8'就是你设置的默认格式
你可以进行修改为与系统一致的格式例如:GB2312String s;
Process process = RuntimegetRuntime()exec("/usr/bin/python mypy");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(processgetInputStream());
while((s=bufferedReaderreadLine()) != null) {
Systemoutprintln(s);
}
processwaitfor();java程序的数据传递至python:
1、首先建立一个python脚本,名字为:my_utilspy
def adder(a, b):
return a + b
2、java类代码 FirstJavaScript:
import javaxscript;
import orgpythoncorePyFunction;
import orgpythoncorePyInteger;
import orgpythoncorePyObject;
import orgpythonutilPythonInterpreter;
import javaio;
import static javalangSystem;
public class FirstJavaScript
{
public static void main(String args[])
{
PythonInterpreter interpreter = new PythonInterpreter();
interpreterexecfile("C:\\Python27\\programs\\my_utilspy");
PyFunction func = (PyFunction)interpreterget("adder",PyFunctionclass);
int a = 2010, b = 2 ;
PyObject pyobj = func__call__(new PyInteger(a), new PyInteger(b));
Systemoutprintln("anwser = " + pyobjtoString());
}//main
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)