码迷,mamicode.com
首页 > 其他好文 > 详细

Jython的简单使用

时间:2017-12-15 22:38:33      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:传递   简单介绍   api   __name__   模块   jython   obj   class   更新   

Jython的简单使用

 

这段时间要做一个毕业设计,主要设计到图片识别的东西,但是机器学习那一块是用CAFFE的python接口做的,然后Web和APP使用Java语言开发的,所有开发的应用项目(网站和移动客户端)需要调用图片识别的python脚本,后来查查资料,使用Jython可以满足在Java中执行python脚本。

 

测试环境:

  • Eclipse
  • 1.8的JDK
  • Jython版本2.5.2(只要jar包就行了)

 

这里默认大家已经安装了Eclipse和JDK,JDK不是1.8的也可以,使用平时开发用的JDK就可以了,至于jython.jar需要到官网去下载

 

1.建立一个java project,然后将jython.jar文件放到目录下,然后选择Build Path,将jython.jar Add to Build Path这样 就能使用jython的API了

技术分享图片

 

2.在上面的图片中,已经显示了我的project的目录,其中src主要放测试代码,lib放jar包,images里面可以放一下后期要用到的图片,pythonfile里面存放python脚本

 

3.建立相关文件后

技术分享图片

其中my_utils.py中,我就简单的放了一个函数,主要是演示一下,java调用python文件的方法;Test.java里面是java的测试函数入口

先展示一下my_utils.py中的代码:

#coding:utf-8

#do not have chinese

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

if __name__ == ‘__main__‘:
  print(adder(2, 10))

 

4.下面介绍两种调用方法:

(1)在Java文件中调用本机python脚本中的函数

  Test.java:

1 //调用python文件中的函数,进行两个数求和运算
2 PythonInterpreter interpreter = new PythonInterpreter();  
3 interpreter.execfile("./pythonfile/my_utils.py");  
4 PyFunction func =     (PyFunction)interpreter.get("adder",PyFunction.class);  
5 int a = 10, b = 2 ;  
6 PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));  
7 System.out.println("anwser = " + pyobj.toString());  

 


(2)在Java文件中直接执行python脚本

  Test.java:

1 //直接运行python脚本
2 PythonInterpreter interpreter = new PythonInterpreter();
3 
4 //执行python py文件 
5 interpreter.execfile("pythonfile/my_utils.py");   

两次的结果都是12,区别 是:方法一调用函数,需要传递参数,大家可以注意一下,在Java文件中参数的传递方法,这算是Jython的一个特点吧;第二种方法直接运行脚本,在Python中将文件作为脚本运行可以加上if __name__ == ‘__main__‘来判断,如果是作为脚本运行,就会执行if里面的代码,在这里就是调用一下函数,并打印结果。

 

备注:其实还可以直接在Java中执行python语句,不过我感觉这种实用性不是很大,从封装代码的角度来考虑,基本上不会用这种方法,大家了解就好。

 

关于如何在Java中调用Python模块的简单介绍到这就结束了,后面项目里面用到更深入的,我再更新。

 

Jython的简单使用

标签:传递   简单介绍   api   __name__   模块   jython   obj   class   更新   

原文地址:http://www.cnblogs.com/yogie/p/jython_programming.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!