`

java调用Jython函数的小例子

阅读更多

写了一个java调用Jython函数的小例子:

java 代码:

public static void main(String args[]){
		
		Hashtable table = new Hashtable();
		table.put(new PyString("method"), new PyString("login"));
		table.put(new PyString("customerName"), new PyString("aa"));
		table.put(new PyString("pssword"), new PyString("111111"));
		
		System.out.println(System.currentTimeMillis());
		PythonInterpreter interp = new PythonInterpreter();
		
		interp.execfile(CustomerDao.class.getResourceAsStream("test.py"));
		PyFunction func =
		(PyFunction)interp.get("testMethod",PyFunction.class);
		System.out.println(System.currentTimeMillis());
		
		PyObject pyobj = func.__call__(new PyDictionary(table));
		
		System.out.println(System.currentTimeMillis());
		System.out.println(pyobj.toString());
	}

 Python代码:

def testMethod(params):
    """ test method of Jython
    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

 注意:Hashtable使用PyDictionary类型,其他请参见Jython的API文档。

上面这个程序加载*.py代码的时候会比较慢,所以要考虑把PyhtonIterPreter缓存起来。

分享到:
评论
1 楼 smallboby 2009-12-24  
对于初学的我,看不懂。如能再详细点,

相关推荐

    jython-standalone-2.7.0.jar

    《Java调用Python脚本:Jython详解及应用》 在现代软件开发中,常常需要在不同的编程语言之间进行交互,比如Java与Python。Jython是这样一种工具,它允许Java开发者无缝地运行Python代码,使得Java应用可以利用...

    jython的用法及学习文档

    Jython 是一种能够运行在 Java 平台上的 Python 解释器,它允许开发者直接使用 Python 代码调用 Java API,同时也支持 Java 代码调用 Python 的功能。本文档旨在帮助初学者了解如何在 Java 应用程序中集成 Jython,...

    Java调用python的方法(jython)

    Java调用Python的方法是使用Jython实现的,Jython是一门语言,它不是Java或Python的解释器,而是一种能够实现Java和Python代码互相访问的技术。 什么是Jython?Jython是一种语言,它可以实现Java和Python代码的互相...

    jython+jyni+cpython扩展1

    总的来说,Jython与JyNI的结合使用旨在增强Python在Java环境中的功能,但成功集成需要对系统环境、编译过程以及库依赖有深入理解。对于编译错误,需要耐心地调试和适配,以确保所有组件的兼容性。

    Jython安装jar

    Jython 的一大优势是能直接调用 Java 类库。例如,我们可以使用 Java 的 `java.util.Date` 类: ```python from java.util import Date now = Date() print(now.toString()) # 输出当前日期和时间 ``` ### 学习...

    json和jython

    这使得使用Jython开发跨平台的应用程序变得简单,特别是在需要与Java系统集成时。 将JSON与Jython结合,可以创建强大的数据处理和网络应用。Jython提供了内置的json模块,该模块允许我们轻松地对JSON数据进行编码和...

    最全的Jython学习资料:来自官网(一)内置模块

    例如,Jython 允许 Python 脚本访问和使用 Java 库,这样开发者就可以利用 Java 广泛的库资源来扩展 Python 程序的功能。 最后,Jython 的官方网站提供了丰富的学习资源,包括对内置模块的详细解释和例子。这些资源...

    Python编程入门经典

    21.8 使用Jython进行测试 483 21.9 嵌入Jython解释器 484 21.10 处理C-Python和Jython 之间的差异 487 21.11 本章小结 488 21.12 习题 488 第Ⅳ部分 附 录 附录A 习题答案 491 附录B 在线资源 519 附录C Python 3.1...

    python 3.0 patterns idioms

    - **使用Java库**:演示如何在Jython程序中使用Java库。 #### 四、总结 《Python 3.0 Patterns, Idioms》不仅是一本学习Python高级特性的指南,更是提升Python编程技能的重要参考书。通过对书中各个主题的学习,...

    Thinking in Patterns _ Problem Solving Techniques using Java.

    ### 思维模式:使用Java的问题解决技巧 #### 标题和描述中的核心知识点解析: **标题与描述:“Thinking in Patterns – Problem Solving Techniques using Java”** 本标题及描述主要聚焦于通过Java语言来实现...

    word源码java-pycascading:级联的Python包装器

    word源码java 不再维护 PyCascading 级联 PyCascading 是 ...上面,重塑流的用户定义函数使用 PyCascading 装饰器进行注释,并且工作流是通过将操作相互链接来创建的。 可以在示例文件夹中找到不同用

    freemarker使用文档

    4.10 Jython包装器:Jython是一种可以运行在Java平台上的Python实现,FreeMarker提供了对Jython的支持。 三部分、XML处理指南 这一部分讲述了如何在FreeMarker中处理XML文档。 一、揭示XML文档 1.1 节点树:介绍了...

    py源文件 例子

    12. **Python解释器**:Python程序由Python解释器执行,如CPython(官方实现)、Jython(Java平台)和IronPython(.NET平台)等。 在“第12章”这个文件名中,可能是对某个教程或课程的划分,第12章可能涉及特定...

    Python核心编程第二版

     2.17.2 如何调用函数   2.17.3 默认参数   2.18 类   2.19 模块   2.19.1 如何导入模块   2.19.2 如何访问一个模块函数或访问一个模块变量   2.20 实用的函数   2.21 练习   第3章 ...

    FreeMarker_Manual_zh_CN.pdf

    在程序开发指南中,还涵盖了诸如变量处理、字符集问题、多线程支持、Bean封装、日志记录、在Servlet中使用、配置安全策略、遗留的XML包装实现、与Ant集成和Jython包装器等高级话题。 在阅读FreeMarker手册后,用户...

    FreeMarker中文帮助文档

    在实际应用中,FreeMarker可以灵活地嵌入到各种应用服务器和编程环境中,比如在Servlet中使用、配置安全策略、处理多线程问题,以及与Ant工具或Jython语言的集成。对于使用FreeMarker的开发者来说,这份手册是一个...

    经典Python面试题之Python基础篇.docx

    Python解释器有多种,例如CPython(官方实现)、Jython(在Java平台上运行)、IronPython(在.NET平台上运行)等。它们的主要区别在于底层实现和可移植性。 PEP8是Python的编码规范,它包括但不限于以下几点: 1. ...

    FreeMarker 2.3.19 中文手册

    - **4.10 Jython包装器:**解释了如何使用Jython脚本来扩展FreeMarker的功能。 #### 四、XML处理指南 **第一章 揭示XML文档** - **1.1 节点树:**介绍了如何将XML文档表示为节点树。 - **1.2 将XML放到数据模型中...

Global site tag (gtag.js) - Google Analytics