`
benqend
  • 浏览: 31919 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java调用python

 
阅读更多
在执行之前都需要把jython对应的包加载进去,这个是必须的。




1.在java类中直接执行python语句
[java] view plaincopy

    import javax.script.*; 
     
    import org.python.util.PythonInterpreter; 
     
    import java.io.*; 
    import static java.lang.System.*; 
    public class FirstJavaScript 
    { 
     public static void main(String args[]) 
     { 
       
      PythonInterpreter interpreter = new PythonInterpreter(); 
      interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); "); 
      interpreter.exec("print days[1];"); 
       
       
     }//main 
    } 


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

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

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

    def adder(a, b): 
        return a + b 

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

java类代码 FirstJavaScript:
[java] view plaincopy

    import javax.script.*; 
     
    import org.python.core.PyFunction; 
    import org.python.core.PyInteger; 
    import org.python.core.PyObject; 
    import org.python.util.PythonInterpreter; 
     
    import java.io.*; 
    import static java.lang.System.*; 
    public class FirstJavaScript 
    { 
        public static void main(String args[]) 
        { 
             
            PythonInterpreter interpreter = new PythonInterpreter(); 
            interpreter.execfile("C:\\Python27\\programs\\my_utils.py"); 
            PyFunction func = (PyFunction)interpreter.get("adder",PyFunction.class); 
     
            int a = 2010, b = 2 ; 
            PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b)); 
            System.out.println("anwser = " + pyobj.toString()); 
     
     
        }//main 
    } 

得到的结果是:anwser = 2012

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

建立脚本inputpy
[python] view plaincopy

    #open files 
     
    print 'hello' 
    number=[3,5,2,0,6] 
    print number 
    number.sort() 
    print number 
    number.append(0) 
    print number 
    print number.count(0) 
    print number.index(5) 


建立java类,调用这个脚本:
[java] view plaincopy

    import javax.script.*; 
     
    import org.python.core.PyFunction; 
    import org.python.core.PyInteger; 
    import org.python.core.PyObject; 
    import org.python.util.PythonInterpreter; 
     
    import java.io.*; 
    import static java.lang.System.*; 
    public class FirstJavaScript 
    { 
     public static void main(String args[]) 
     { 
       
      PythonInterpreter interpreter = new PythonInterpreter(); 
      interpreter.execfile("C:\\Python27\\programs\\input.py"); 
     }//main 
    } 


得到的结果是:
[plain] view plaincopy

    hello 
    [3, 5, 2, 0, 6] 
    [0, 2, 3, 5, 6] 
    [0, 2, 3, 5, 6, 0] 
    2 
    3 


Link:http://blog.csdn.net/anbo724/article/details/6608632
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics