zoukankan      html  css  js  c++  java
  • 在java中调用python方法

    1、http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录

    示例:

    1、摘自:http://blog.csdn.net/anbo724/article/details/6608632

    1.在java类中直接执行python语句

    1. import javax.script.*;  
    2.   
    3. import org.python.util.PythonInterpreter;  
    4.   
    5. import java.io.*;  
    6. import static java.lang.System.*;  
    7. public class FirstJavaScript  
    8. {  
    9.  public static void main(String args[])  
    10.  {  
    11.     
    12.   PythonInterpreter interpreter = new PythonInterpreter();  
    13.   interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");  
    14.   interpreter.exec("print days[1];");  
    15.     
    16.     
    17.  }//main  
    18. }  


    这样得到的结果是Tue,在控制台显示出来,这是直接进行调用的。

    2.在java中调用本机python脚本中的函数:

       首先建立一个python脚本,名字为:my_utils.py

    1. def adder(a, b):  
    2.     return a + b  

    然后建立一个java类,用来测试,

    java类代码 FirstJavaScript:

    1. import javax.script.*;  
    2.   
    3. import org.python.core.PyFunction;  
    4. import org.python.core.PyInteger;  
    5. import org.python.core.PyObject;  
    6. import org.python.util.PythonInterpreter;  
    7.   
    8. import java.io.*;  
    9. import static java.lang.System.*;  
    10. public class FirstJavaScript  
    11. {  
    12.     public static void main(String args[])  
    13.     {  
    14.           
    15.         PythonInterpreter interpreter = new PythonInterpreter();  
    16.         interpreter.execfile("C:\Python27\programs\my_utils.py");  
    17.         PyFunction func = (PyFunction)interpreter.get("adder",PyFunction.class);  
    18.   
    19.         int a = 2010, b = 2 ;  
    20.         PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));  
    21.         System.out.println("anwser = " + pyobj.toString());  
    22.   
    23.   
    24.     }//main  
    25. }  

    得到的结果是:anwser = 2012

    3.使用java直接执行python脚本,

    建立脚本inputpy

    1. #open files  
    2.   
    3. print 'hello'  
    4. number=[3,5,2,0,6]  
    5. print number  
    6. number.sort()  
    7. print number  
    8. number.append(0)  
    9. print number  
    10. print number.count(0)  
    11. print number.index(5)  


    建立java类,调用这个脚本:

    1. import javax.script.*;  
    2.   
    3. import org.python.core.PyFunction;  
    4. import org.python.core.PyInteger;  
    5. import org.python.core.PyObject;  
    6. import org.python.util.PythonInterpreter;  
    7.   
    8. import java.io.*;  
    9. import static java.lang.System.*;  
    10. public class FirstJavaScript  
    11. {  
    12.  public static void main(String args[])  
    13.  {  
    14.     
    15.   PythonInterpreter interpreter = new PythonInterpreter();  
    16.   interpreter.execfile("C:\Python27\programs\input.py");  
    17.  }//main  
    18. }  


    得到的结果是:

    1. hello  
    2. [3, 5, 2, 0, 6]  
    3. [0, 2, 3, 5, 6]  
    4. [0, 2, 3, 5, 6, 0]  
    5. 2  
    6. 3  


  • 相关阅读:
    在Spring 中如果Girl要Kiss Boy咋办捏?
    对象的序列化
    HibernateHQL
    Struts 动态FORM实现过程
    对struts一点理解总结
    Hibernate Query Language(HQL)。
    Hibernate中Inverse和Cascade
    Spring 中的内部bean 和集合
    设计模式到底离我们有多远
    Aspx页面转静态页面
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4032452.html
Copyright © 2011-2022 走看看