Jython - приложение Java

Скачать jython-standalone-2.7.0.jar - Для встраивания Jython в приложения Java со страницы их официальной загрузки: http://www.jython.org/downloads.html и включите этот файл jar в переменную среды Java CLASSPATH.

Эта библиотека содержит 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, Classjavaclass

Получить значение переменной в локальном пространстве имен. Значение будет возвращено как экземпляр данного класса Java.

Следующий блок кода представляет собой программу Java со встроенным скриптом Jython. “hello.py”.usingexecfile()метод объекта PythonInterpreter. Он также показывает, как переменную Python можно установить или прочитать с помощью методов set () и get ().

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