Java实现的执行python脚本工具类示例【使用jython.jar】
本文实例讲述了Java实现的执行python脚本工具类。分享给大家供大家参考,具体如下:
这里java中执行python脚本工具类,需要使用jython.jar
java中执行python脚本工具类,学习的时候写着玩:
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Map;
importorg.python.core.PyObject;
importorg.python.util.PythonInterpreter;
publicfinalclassJythonUtil{
privateJythonUtil(){}
/**
*执行某个.py文件
*@paramfilePath
*@throwsIOException
*/
publicstaticvoidpythonExecute(StringfilePath)throwsIOException{
PythonInterpreterpin=newPythonInterpreter();
InputStreamis=newFileInputStream(filePath);
pin.execfile(is);
is.close();
}
/**
*获取python程序的变量值
*@paramfilePath
*@paramponames
*@return
*@throwsIOException
*/
publicstaticListtransP2JData(StringfilePath,String...ponames)throwsIOException{
PythonInterpreterpin=newPythonInterpreter();
InputStreamis=newFileInputStream(filePath);
pin.execfile(is);
is.close();
Listpos=newArrayList<>();
for(Stringponame:ponames){
PyObjectpo=pin.get(poname);
pos.add(po);
}
returnpos;
}
/**
*将参数赋给python程序执行
*@paramfilePath
*@parampomaps
*@throwsIOException
*/
publicstaticvoidtransJ2PData(StringfilePath,Mappomaps)throwsIOException{
PythonInterpreterpin=newPythonInterpreter();
InputStreamis=newFileInputStream(filePath);
for(Stringpomapkey:pomaps.keySet()){
pin.set(pomapkey,pomaps.get(pomapkey));
}
pin.execfile(is);
is.close();
}
/**
*将参数赋给python程序执行,并获取python中的变量值
*@paramfilePath
*@parampomaps
*@paramponames
*@return
*@throwsIOException
*/
publicstaticListtransJ2PData(StringfilePath,Mappomaps,String...ponames)throwsIOException{
PythonInterpreterpin=newPythonInterpreter();
InputStreamis=newFileInputStream(filePath);
for(Stringpomapkey:pomaps.keySet()){
pin.set(pomapkey,pomaps.get(pomapkey));
}
pin.execfile(is);
is.close();
Listpos=newArrayList<>();
for(Stringponame:ponames){
PyObjectpo=pin.get(poname);
pos.add(po);
}
returnpos;
}
}
附:jython.jar点击此处本站下载。
更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。