Jython Java应用程序

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 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) 在本地命名空间中设置一个对象类型的变量
19 set(String name, PyObject value) 在本地命名空间中设置一个PyObject类型的变量
20 get(String) 获取本地命名空间中变量的值
21 **get(String name, Class javaclass ** 获取本地命名空间中变量的值。值将作为给定Java类的实例返回。

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

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程