Jython - Applicazione Java

Scarica jython-standalone-2.7.0.jar - Per incorporare Jython nelle applicazioni Java dalla loro pagina di download ufficiale: http://www.jython.org/downloads.html e includere questo file jar nella variabile d'ambiente Java CLASSPATH.

Questa libreria contiene il file PythonInterpreterclasse. Utilizzando l'oggetto di questa classe, qualsiasi script Python può essere eseguito utilizzando ilexecfile()metodo. PythonInterpreter ti consente di utilizzarePyObjectsdirettamente. Tutti gli oggetti noti al sistema runtime Jython sono rappresentati da un'istanza della classe PyObject o da una delle sue sottoclassi.

La classe PythonInterpreter ha alcuni metodi usati regolarmente, che sono spiegati nella tabella riportata di seguito.

Sr.No. Metodo e descrizione
1

setIn(PyObject)

Imposta l'oggetto Python da utilizzare per il flusso di input standard

2

setIn(java.io.Reader)

Imposta un java.io.Reader da utilizzare per il flusso di input standard

3

setIn(java.io.InputStream)

Imposta un java.io.InputStream da utilizzare per il flusso di input standard

4

setOut(PyObject)

Imposta l'oggetto Python da utilizzare per il flusso di output standard

5

setOut(java.io.Writer)

Impostare java.io.Writer da utilizzare per il flusso di output standard

6

setOut(java,io.OutputStream)

Impostare java.io.OutputStream da utilizzare per il flusso di output standard

7

setErr(PyObject)

Imposta un oggetto di errore Python da utilizzare per il flusso di errore standard

8

setErr(java.io.Writer

Imposta un java.io.Writer da utilizzare per il flusso di errore standard

9

setErr(java.io.OutputStream)

Impostare un java.io.OutputStream da utilizzare per il flusso di errore standard

10

eval(String)

Valuta una stringa come sorgente Python e restituisci il risultato

11

eval(PyObject)

Valuta un oggetto codice Python e restituisci il risultato

12

exec(String)

Esegui una stringa sorgente Python nello spazio dei nomi locale

13

exec(PyObject)

Esegui un oggetto codice Python nello spazio dei nomi locale

14

execfile(String filename)

Esegui un file di origine Python nello spazio dei nomi locale

15

execfile(java.io.InputStream)

Esegui un flusso di input dell'origine Python nello spazio dei nomi locale

16

compile(String)

Compilare una stringa sorgente Python come espressione o modulo

17

compile(script, filename)

Compila uno script del sorgente Python come espressione o modulo

18

set(String name, Object value)

Imposta una variabile di tipo Object nello spazio dei nomi locale

19

set(String name, PyObject value)

Imposta una variabile di tipo PyObject nello spazio dei nomi locale

20

get(String)

Ottieni il valore di una variabile nello spazio dei nomi locale

21

get(String name, Class javaclass

Ottieni il valore di una variabile nello spazio dei nomi locale. Il valore verrà restituito come istanza della classe Java specificata.

Il seguente blocco di codice è un programma Java con uno script Jython incorporato “hello.py”.usingexecfile()metodo dell'oggetto PythonInterpreter. Mostra anche come una variabile Python può essere impostata o letta usando i metodi set () e 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 ");
   }
}

Compilare ed eseguire il programma Java sopra per ottenere il seguente output.

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