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, Class Получить значение переменной в локальном пространстве имен. Значение будет возвращено как экземпляр данного класса 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