如何通过java代码触发远程服务器上的python程序

如何通过java代码触发远程服务器上的python程序,第1张

有几个通用方法:
使用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'就是你设置的默认格式
你可以进行修改为与系统一致的格式例如:GB2312

String 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
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13174954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-16
下一篇 2023-06-16

发表评论

登录后才能评论

评论列表(0条)

保存