Jython 是作为包含安装程序的单个 Java 类文件而发布的。只要下载 jython-21.class 并将该文件放在 CLASSPATH 内,然后运行 java jython-21 。选择您要安装的组件(在示例中,我选择了所有缺省组件),接受其许可证(这是开放源码 BeOpen/CNRI 许可证)并指定安装目录,之后安装程序会完成其余安装。
如果安装时碰到问题,请参阅 Jython 网站上的安装信息页。对于 UNIX 平台,您可能想将选择的 Jython 安装路径添加到 PATH 环境变量。做为Jython入门指导,现在只要输入“jython”就可以运行交互式 PATH :
清单 1. 运行 Jython shell
- $ jython
- Jython 2.1 on java1.4.0_01 (JIT: null)
- Type "copyright", "credits" or "license" for more information.
- >>>
>>> 提示符允许您输入命令并立即获得结果。在 Java 编程中,每个程序都必须至少定义一个类。清单 2 演示了一个完整的 Java 程序,它用于将一条消息写到屏幕:
清单 2. 完整的 Java 程序
- class App
- {
- public static void main(String args[])
- {
- System.out.println("I don't like spam!");
- }
- }
JPython 将这些行减少为:
清单 3. Jython 减少了 Java 代码开销
- >>> print "I don't like spam!"
- I don't like spam!
- >>>
print 关键字是重要的工具之一,特别是在交互式 shell 中,它会立即打印其参数,并随后向您返回 shell 提示符。不仅输入和调试的代码比较少,而且不必经历编译/运行周期就可以马上获得结果。可以一次打印多个值,并象下面显示的那样轻松使用简单的表达式:
清单 4. print 是一个重要的 Jython 工具
- >>> print "one plus one is", 1+1
- one plus one is 2
- >>>
Jython 表达式类似于 Java 表达式。 1+1 的结果是一个整数,通过 print 它被强制转换成字符串,并被并置到由逗号定界符指定的初始字符串。
通过使用 Jython,您甚至不需要什么工具就可以访问标准 Java 库。以下示例访问了 java.util.Random :
清单 5. 通过 Jython 访问标准 Java 库
- >>> from java.util import Random
- >>> rng = Random()
- >>> i = rng.nextBoolean()
- >>> print i
- 1
- >>>
Jython 的 import 关键字与 Java 语言版本的相似之处在于它使一个模块中的内容可以为其它模块所使用,但是语法和行为有所差别。
上面清单 5 中的示例使用了相关的 from 关键字以限制从 java.util 导入哪些符号。其后一行显示了 Random 类实例的创建。正如您所看到的,不需要 new 关键字。
也不需要对保存新实例的变量进行任何类型说明。这强调了 Jython 的一个重要简化,而且这是其动态本性的一个优点 ― 您不必再担心数据类型定义了。
清单 5 中的下一行演示了方法调用,这与 Java 语言完全相同,只是没有对结果进行类型声明。Java 代码中的 nextBoolean() 是布尔值。Jython 2.1 没有布尔类型(不过这可能会很快改变;Python 2.3 就添加了布尔类型),因此它替换为 0或 1这样的整数。类似地,要调用希望使用布尔值的 Java 方法,就要传递满足这些约束的整数值。
您也可以使用 import 关键字对导入的所有符号作全限定,如清单 6 所示:
清单 6. Import 对所有导入的符号名称作了全限定
- >>> import java.util.Random
- >>> rng = java.util.Random()
- >>> print rng.nextFloat()
- 0.9567907452583313
- >>>
Jython 的浮点值与 Java 语言中的完全相同。以上便完成了Jython入门学习。
【编辑推荐】