Jython – Java应用程序

Jython – Java应用程序

下载 jython-standalon-2.7.0.jar - 用于在Java应用程序中嵌入Jython,从其官方下载页面http://www.jython.org/downloads.html,并在Java CLASSPATH环境变量中包含这个jar文件。

这个库包含 PythonInterpreter 类。使用这个类的对象,任何Python脚本都可以通过 execfile() 方法来执行。PythonInterpreter使你可以直接使用 PyObjects 。所有Jython运行系统知道的对象都由PyObject类或其子类之一的实例表示。

PythonInterpreter类有一些经常使用的方法,在下面的表格中解释。

编号:Sr.No. 方法和描述
1 setIn(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 setErr(PyObject) 设置一个Python错误对象,用于标准错误流。
8 setErr(java.io.Writer ) 设置一个java.io.Writer,用于标准错误流。
9 setErr(java.io.OutputStream) 设置一个java.io.OutputStream,用于标准错误流。
10 eval(String) 将一个字符串作为Python源进行评估并返回结果。
11 eval(PyObject) 评估一个Python代码对象并返回结果。
12 exec(String) 在本地命名空间中执行一个Python源字符串
13 exec(PyObject) 在本地命名空间中执行一个Python代码对象。
14 execfile(String filename) 在本地命名空间中执行一个Python源代码文件
15 execfile(java.io.InputStream) 在本地命名空间中执行一个 Python 代码的输入流。
16 compile(String) 将一个 Python 源代码字符串编译为表达式或模块。
17 compile(script, filename) 将 Python 源码的一个脚本编译为表达式或模块。
18 set(String name, Object value) 在本地命名空间中设置一个 Object 类型的变量。
19 set(String name, PyObject value) 在本地命名空间中设置一个PyObject类型的变量。
20 get(String) 获取本地命名空间中的一个变量的值
21 **get(String name, Class javaclass **) 获取本地命名空间中的一个变量的值。该值将作为给定的Java类的一个实例返回。

下面的代码块是一个Java程序,它有一个嵌入的Jython脚本 “hello.py”.使用 PythonInterpreter对象的 ingexecfile() 方法。它还展示了如何使用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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程