编写Jython脚本与编写Cpython(标准Python)脚本非常相似。你可以导入标准Python模块和Java包。例如,假如你想从Abstract Windows Toolkit(AWT)导出所有的类和包,你可以使用下面的代码:
fromjava.awt import *
Jython有两种方法实现Python序列和Java数组之间的转换。第一种方法创建一个给定长度的Java数组(填充0、空值或者其它适当的值)
fromjarray import zeros
a = zeros(10, 'b')
这句代码创建一个长度为10、以字节为单元的数组。
第二个方法把一个已经存在的Python序列,例如一个列表,转换成对应的Java数组,代码如下:
fromjarray import array
pa = ['P','y','t','h','o','n']#a list of characters
ja = array(pa, 'c')#an array of characters
一个简单的例子
作为一个例子,下面的代码演示了如何使用AWT窗口操作库。你可以用Jython解释器来运行这段脚本或者把它编译成Java类文件。
from java.awt import *
from java.lang.System import *
class ExitListener(event.ActionListener):
def actionPerformed(self, event):
exit(0)
class MainFrame(Frame):
def __init__(self):
self.MenuBar = MenuBar()
self.FileMenu = Menu("File")
self.ExitItem = MenuItem("Exit")
self.ExitItem.addActionListener(ExitListener())
self.FileMenu.add(self.ExitItem)
self.MenuBar.add(self.FileMenu)
self.TextArea = TextArea()
self.setMenuBar(self.MenuBar)
self.add(self.TextArea, "Center")
frame = MainFrame()
frame.pack()
frame.setVisible(1)
这段代码的功能是提供一个非常简单(有一个Exit菜单和一个文本框)的窗口。它还给Exit菜单项实现一个actionListener。
创建Java字节代码(byte code)
你可以用Jythoc的功能来编译下面的脚本,如下所示:
jythonc -c -a -d JythonDemo.py
它将创建四个Java库文件和一个Java文件。