亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java與Python之間使用jython工具類實現數據交互

2024-07-14 08:43:56
字體:
來源:轉載
供稿:網友

最近有個功能需要java與python之間的數據交互,java需要把參數傳給python,然后python計算的結果返回給java.于是就寫了一個工具類.

首先,maven 需要加載jython的依賴.工具類代碼如下:

import java.util.List;import java.util.Map;import java.util.Properties;import org.apache.poi.ss.formula.functions.T;import org.python.core.PyFunction;import org.python.core.PyInteger;import org.python.core.PyObject;import org.python.core.PyString;import org.python.util.PythonInterpreter;/**   * @ClassName: JythonUtils   * @Description:TODO(jython 工具類)   * @author: zy * @date: *    * @Copyright: 2018 Inc. All rights reserved.  * 注意: */public class JythonUtils { /**   * @Title: jythonInit   * @Description: TODO(初始化jython)   * @param: @return    * @return: PythonInterpreter    * @throws   */ public static PythonInterpreter jythonInit(){ //初始化site 配置 Properties props = new Properties();    props.put("python.home", ""); //python Lib 或 jython Lib,根據系統中該文件目錄路徑    props.put("python.console.encoding", "UTF-8");        props.put("python.security.respectJavaAccessibility", "false");        props.put("python.import.site", "false");    Properties preprops = System.getProperties();    PythonInterpreter.initialize(preprops, props, new String[0]);    //創建PythonInterpreter 對象 PythonInterpreter interp = new PythonInterpreter(); return interp; } /**   * @Title: loadPythonFile   * @Description: TODO(加載python 源碼文件,)   * @param: @param interp * @param: @param filePath ,比如:F://jpython_jar//jpythonTest//pythonTest.py 或/testpython/test.py * @param: @return    * @return: PythonInterpreter    * @throws   */ public static PythonInterpreter loadPythonFile(PythonInterpreter interp, String filePath){ interp.execfile(filePath); return interp; } /**   * @Title: loadPythonFunc   * @Description: TODO(加載python 源碼文件中的某個方法)   * @param: @param interp * @param: @param functionName * @param: @return    * @return: PyFunction    * @throws   */ public static PyFunction loadPythonFunc(PythonInterpreter interp, String functionName){ //加載方法   PyFunction func = (PyFunction) interp.get(functionName,PyFunction.class); return func; } /**   * @Title: execFunc   * @Description: TODO(執行無參方法,返回PyObject)   * @param: @param func    * @return: PyObject    * @throws   */ public static PyObject execFunc(PyFunction func){ PyObject pyobj = func.__call__(); return pyobj; } /**   * @Title: execFuncToString   * @Description: TODO(執行無參方法,返回一個字符串)   * @param: @param func * @param: @return    * @return: String    * @throws   */ public static String execFuncToString(PyFunction func){ PyObject pyobj = execFunc(func); return (String) pyobj.__tojava__(String.class); } /**   * @Title: execFuncToString   * @Description: TODO(執行有參方法,返回一個字符串)   * @param: @param func * @param: @param paramName ,參數名 * @param: @return    * @return: String    * @throws   */ public static String execFuncToString2(PyFunction func, String paramName){  PyObject pyobj = func.__call__(new PyString(paramName)); return (String) pyobj.__tojava__(String.class); } /**   * @Title: execFuncToInteger   * @Description: TODO(執行無參方法,返回一個Integer)   * @param: @param func * @param: @return    * @return: Integer    * @throws   */ public Integer execFuncToInteger(PyFunction func){ PyObject pyobj = execFunc(func); return (Integer) pyobj.__tojava__(Integer.class); } /**   * @Title: execFuncToList   * @Description: TODO(執行無參方法,返回一個List)   * @param: @param func * @param: @return    * @return: List<T>    * @throws   */ public List<T> execFuncToList(PyFunction func){ PyObject pyobj = execFunc(func); return (List<T>) pyobj.__tojava__(List.class); } /**   * @Title: execFuncToMap   * @Description: TODO(執行無參方法,返回一個Map<String, Object>)   * @param: @param func * @param: @return    * @return: Map<String,Object>    * @throws   */ public Map<String, Object> execFuncToMap(PyFunction func){ PyObject pyobj = execFunc(func); return (Map<String, Object>) pyobj.__tojava__(Map.class); } public void execFuncToByParamsList(PyFunction func, List<T> paramsList){ } public static void main(String[] args){ PythonInterpreter interp = jythonInit(); //文件名 String filePath = "F://jpython_jar//jpythonTest//pythonTest.py"; interp = loadPythonFile(interp, filePath); //函數名 String functionName = "count"; PyFunction func = loadPythonFunc(interp, functionName); //執行無參方法,返回PyObject PyObject pyobj = execFunc(func); //執行無參方法,返回String String resultStr = execFuncToString(func); //執行有參方法,返回String String paramName = "name"; String resultStr2 = execFuncToString2(func, paramName); }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频资源| 26uuu亚洲国产精品| 日韩在线播放视频| 亚洲成人999| 最近2019中文免费高清视频观看www99| 日本在线观看天堂男亚洲| 国产精品偷伦一区二区| 久久久亚洲影院你懂的| www.久久久久久.com| 日韩激情av在线免费观看| 日韩精品在线视频美女| 欧美性猛交99久久久久99按摩| 疯狂做受xxxx高潮欧美日本| 久久九九热免费视频| 久久久久久亚洲| 欧美性生活大片免费观看网址| 91丝袜美腿美女视频网站| 久久综合免费视频影院| 热re91久久精品国99热蜜臀| 最新69国产成人精品视频免费| 亚洲性视频网址| 亚洲精品成人久久电影| 成人免费福利视频| 国产午夜精品美女视频明星a级| 欧美日本国产在线| 欧美电影免费观看高清完整| 丁香五六月婷婷久久激情| 亚洲欧美另类中文字幕| 国产91精品久久久久| 91久久在线观看| 国产精品成人国产乱一区| 欧美性精品220| 久久全球大尺度高清视频| 久久亚洲国产精品成人av秋霞| 日本中文字幕成人| 成人激情视频小说免费下载| 91黑丝在线观看| 97久久久免费福利网址| 欧美中文字幕在线观看| 2019中文字幕在线观看| 2020久久国产精品| 亚洲欧洲偷拍精品| 操人视频在线观看欧美| 久久av.com| 97超级碰在线看视频免费在线看| 精品视频在线播放免| 全亚洲最色的网站在线观看| 91久久久在线| 亚洲精品美女在线观看播放| 欧美电影免费观看高清完整| 亚洲色图15p| 日韩成人在线免费观看| 欧美人交a欧美精品| 国产精品美女视频网站| 青草热久免费精品视频| 欧美日韩成人在线观看| 大伊人狠狠躁夜夜躁av一区| 久久久久久国产精品三级玉女聊斋| 国产欧美日韩中文| 日韩女在线观看| 久久亚洲综合国产精品99麻豆精品福利| 在线精品视频视频中文字幕| 97人洗澡人人免费公开视频碰碰碰| 青青草成人在线| 欧美成人性生活| 精品欧美一区二区三区| 欧美丰满片xxx777| 久久久久久网址| 亚洲一区二区三区四区在线播放| 91精品视频一区| 国产精品久久久久9999| 久久久国产一区| 日韩精品在线免费播放| 在线观看91久久久久久| 中文国产成人精品久久一| 精品高清一区二区三区| 亚洲男人天天操| 国产69精品久久久久99| 欧美性猛交丰臀xxxxx网站| 亚洲精品一区二区网址| 911国产网站尤物在线观看| 国产精品观看在线亚洲人成网| 97久久精品人搡人人玩| 欧美日韩亚洲高清| 日韩精品在线视频观看| 亚洲综合av影视| 91国内在线视频| 3344国产精品免费看| 久久99久久久久久久噜噜| 最近2019中文字幕第三页视频| 欧美中在线观看| 成人国产在线视频| 国产精品va在线播放我和闺蜜| 亚洲精品国产电影| 性色av香蕉一区二区| 国产成人综合一区二区三区| 国产在线日韩在线| 成人a在线视频| 日本中文字幕久久看| 午夜精品美女自拍福到在线| 日韩在线观看免费全集电视剧网站| 亚洲欧美日韩视频一区| 丝袜美腿精品国产二区| 中文字幕在线看视频国产欧美在线看完整| 69久久夜色精品国产7777| 亚洲高清久久久久久| 九九久久国产精品| 九九视频直播综合网| 国产精品视频在线观看| 国产成人久久久精品一区| 国产精品老女人精品视频| 国模精品视频一区二区三区| 亚洲爱爱爱爱爱| 高清在线视频日韩欧美| 国产成人在线播放| 欧美日本精品在线| 国产精品久久久久久久久久东京| 一个色综合导航| 久久亚洲国产精品成人av秋霞| 色一区av在线| 久久999免费视频| 欧美一区二区三区免费观看| 欧美视频在线观看 亚洲欧| 91wwwcom在线观看| 欧美日韩国产中文精品字幕自在自线| 欧美日韩亚洲系列| 日韩中文第一页| 亚洲人成伊人成综合网久久久| 久久久在线免费观看| 色www亚洲国产张柏芝| 亚洲图片欧美日产| 日韩欧美亚洲一二三区| 国产欧美一区二区白浆黑人| 国产亚洲欧美日韩美女| 清纯唯美亚洲激情| 国产小视频国产精品| 97久久精品人人澡人人爽缅北| 日韩视频第一页| 国产精品高潮呻吟久久av野狼| 久久久久久久久久久网站| 日韩av在线免费观看一区| 日韩免费视频在线观看| 久久手机精品视频| 国产精品视频男人的天堂| 97视频国产在线| 欧美怡红院视频一区二区三区| 一本大道久久加勒比香蕉| 国产v综合ⅴ日韩v欧美大片| 国产精品盗摄久久久| 国产在线不卡精品| 91久久国产精品91久久性色| 亚洲精品视频免费在线观看| 日本精品视频在线播放| 国产精品视频网| 亚洲九九九在线观看| 日韩av手机在线观看| 亚洲国产成人精品一区二区| 亚洲一二在线观看| 成人黄色免费在线观看| 色婷婷av一区二区三区在线观看| 亚洲美女又黄又爽在线观看| 国产精品福利观看| 欧美成人免费全部观看天天性色| 精品久久久久久久久久|