- Jython 教程
- Jython - 主页
- Jython - 概述
- Jython - 安装
- Jython - 导入 Java 库
- Jython - 变量和数据类型
- Jython - 使用 Java 集合类型
- Jython - 决策控制
- Jython - 循环
- Jython - 函数
- Jython - 模块
- Jython - 包
- Jython - Java 应用程序
- Jython - Eclipse 插件
- Jython - Eclipse 中的项目
- Jython - NetBeans 插件和项目
- Jython - Servlet
- Jython-JDBC
- Jython - 使用 Swing GUI 库
- Jython - 布局管理
- Jython - 事件处理
- Jython - 菜单
- Jython - 对话框
- Jython 有用资源
- Jython - 快速指南
- Jython - 有用的资源
- Jython - 讨论
Jython - Java 应用程序
下载jython-standalone-2.7.0.jar - 用于从官方下载页面将 Jython 嵌入 Java 应用程序:http://www.jython.org/downloads.html并将此 jar 文件包含在 Java CLASSPATH 环境变量中。
该库包含PythonInterpreter类。使用此类的对象,可以使用execfile()方法执行任何 Python 脚本。PythonInterpreter 使您能够直接使用PyObjects。Jython 运行时系统已知的所有对象均由 PyObject 类或其子类之一的实例表示。
PythonInterpreter 类有一些常用的方法,下表对此进行了解释。
| 先生。 | 方法及说明 |
|---|---|
| 1 | 设置(PyObject) 设置用于标准输入流的 Python 对象 |
| 2 | setIn(java.io.Reader) 设置用于标准输入流的 java.io.Reader |
| 3 | setIn(java.io.InputStream) 设置用于标准输入流的 java.io.InputStream |
| 4 | setOut(PyObject) 设置用于标准输出流的 Python 对象 |
| 5 | setOut(java.io.Writer) 设置用于标准输出流的 java.io.Writer |
| 6 | setOut(java,io.OutputStream) 设置用于标准输出流的 java.io.OutputStream |
| 7 | 设置错误(PyObject) 设置用于标准错误流的 Python 错误对象 |
| 8 | setErr(java.io.Writer) 设置用于标准错误流的 java.io.Writer |
| 9 | setErr(java.io.OutputStream) 设置用于标准错误流的 java.io.OutputStream |
| 10 | 评估(字符串) 将字符串作为 Python 源进行计算并返回结果 |
| 11 | 评估(PyObject) 评估 Python 代码对象并返回结果 |
| 12 | 执行(字符串) 在本地命名空间中执行Python源字符串 |
| 13 | 执行(PyObject) 在本地命名空间中执行Python代码对象 |
| 14 | execfile(字符串文件名) 在本地命名空间中执行Python源文件 |
| 15 | execfile(java.io.InputStream) 在本地命名空间中执行Python源的输入流 |
| 16 | 编译(字符串) 将 Python 源字符串编译为表达式或模块 |
| 17 号 | 编译(脚本,文件名) 将 Python 源代码编译为表达式或模块 |
| 18 | 设置(字符串名称,对象值) 在本地命名空间中设置一个Object类型的变量 |
| 19 | 设置(字符串名称,PyObject 值) 在本地命名空间中设置一个 PyObject 类型的变量 |
| 20 | 获取(字符串) 获取本地命名空间中变量的值 |
| 21 | 获取(字符串名称,类 获取本地命名空间中变量的值。该值将作为给定 Java 类的实例返回。 |
以下代码块是一个 Java 程序,具有嵌入的 Jython 脚本“hello.py”.usingexecfile() PythonInterpreter 对象的方法。它还展示了如何使用 set() 和 get() 方法设置或读取 Python 变量。
import org.python.util.PythonInterpreter;
import org.python.core.*;
public class SimpleEmbedded {
public static void main(String []args) throws PyException {
PythonInterpreter interp = new PythonInterpreter();
System.out.println("Hello, world from Java");
interp.execfile("hello.py");
interp.set("a", new PyInteger(42));
interp.exec("print a");
interp.exec("x = 2+2");
PyObject x = interp.get("x");
System.out.println("x: "+x);
System.out.println("Goodbye ");
}
}
编译并运行上述Java程序,得到如下输出。
Hello, world from Java hello world from Python 42 x: 4 Goodbye