Jython - Aplicación Java

Descargar jython-standalone-2.7.0.jar - Para incrustar Jython en aplicaciones Java desde su página de descargas oficial: http://www.jython.org/downloads.html e incluya este archivo jar en la variable de entorno Java CLASSPATH.

Esta biblioteca contiene el PythonInterpreterclase. Usando el objeto de esta clase, cualquier script de Python se puede ejecutar usando elexecfile()método. PythonInterpreter le permite hacer uso dePyObjectsdirectamente. Todos los objetos conocidos por el sistema de ejecución de Jython están representados por una instancia de la clase PyObject o una de sus subclases.

La clase PythonInterpreter tiene algunos métodos que se utilizan con regularidad, que se explican en la tabla siguiente.

No Señor. Método y descripción
1

setIn(PyObject)

Configurar el objeto Python que se usará para el flujo de entrada estándar

2

setIn(java.io.Reader)

Establecer un java.io.Reader para usar para el flujo de entrada estándar

3

setIn(java.io.InputStream)

Establecer un java.io.InputStream para usarlo en el flujo de entrada estándar

4

setOut(PyObject)

Establecer el objeto de Python que se utilizará para el flujo de salida estándar

5

setOut(java.io.Writer)

Configure java.io.Writer para usarlo en el flujo de salida estándar

6

setOut(java,io.OutputStream)

Configure java.io.OutputStream para usarlo para el flujo de salida estándar

7

setErr(PyObject)

Establecer un objeto de error de Python para utilizarlo en la secuencia de errores estándar

8

setErr(java.io.Writer

Establezca un java.io.Writer para usar para el flujo de error estándar

9

setErr(java.io.OutputStream)

Establecer un java.io.OutputStream para usar para el flujo de error estándar

10

eval(String)

Evaluar una cadena como fuente de Python y devolver el resultado

11

eval(PyObject)

Evaluar un objeto de código Python y devolver el resultado

12

exec(String)

Ejecute una cadena fuente de Python en el espacio de nombres local

13

exec(PyObject)

Ejecute un objeto de código Python en el espacio de nombres local

14

execfile(String filename)

Ejecute un archivo de origen Python en el espacio de nombres local

15

execfile(java.io.InputStream)

Ejecute un flujo de entrada de la fuente Python en el espacio de nombres local

dieciséis

compile(String)

Compile una cadena fuente de Python como expresión o módulo

17

compile(script, filename)

Compilar un script de código fuente Python como expresión o módulo

18

set(String name, Object value)

Establecer una variable de tipo de objeto en el espacio de nombres local

19

set(String name, PyObject value)

Establecer una variable de tipo PyObject en el espacio de nombres local

20

get(String)

Obtener el valor de una variable en el espacio de nombres local

21

get(String name, Class javaclass

Obtenga el valor de una variable en el espacio de nombres local. El valor se devolverá como una instancia de la clase Java dada.

El siguiente bloque de código es un programa Java que tiene un script Jython incrustado “hello.py”.usingexecfile()método del objeto PythonInterpreter. También muestra cómo se puede configurar o leer una variable de Python usando los métodos set () y 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 ");
   }
}

Compile y ejecute el programa Java anterior para obtener el siguiente resultado.

Hello, world from Java
hello world from Python
42
x: 4
Goodbye