Jython - Application Java

Télécharger jython-standalone-2.7.0.jar - Pour intégrer Jython dans les applications Java à partir de leur page de téléchargement officielle: http://www.jython.org/downloads.html et incluez ce fichier jar dans la variable d'environnement Java CLASSPATH.

Cette bibliothèque contient le PythonInterpreterclasse. En utilisant l'objet de cette classe, tout script Python peut être exécuté en utilisant leexecfile()méthode. Le PythonInterpreter vous permet d'utiliserPyObjectsdirectement. Tous les objets connus du système d'exécution Jython sont représentés par une instance de la classe PyObject ou l'une de ses sous-classes.

La classe PythonInterpreter a quelques méthodes régulièrement utilisées, qui sont expliquées dans le tableau ci-dessous.

N ° Sr. Méthode et description
1

setIn(PyObject)

Définir l'objet Python à utiliser pour le flux d'entrée standard

2

setIn(java.io.Reader)

Définissez un java.io.Reader à utiliser pour le flux d'entrée standard

3

setIn(java.io.InputStream)

Définissez un java.io.InputStream à utiliser pour le flux d'entrée standard

4

setOut(PyObject)

Définir l'objet Python à utiliser pour le flux de sortie standard

5

setOut(java.io.Writer)

Définissez le java.io.Writer à utiliser pour le flux de sortie standard

6

setOut(java,io.OutputStream)

Définissez le java.io.OutputStream à utiliser pour le flux de sortie standard

sept

setErr(PyObject)

Définir un objet d'erreur Python à utiliser pour le flux d'erreur standard

8

setErr(java.io.Writer

Définissez un java.io.Writer à utiliser pour le flux d'erreur standard

9

setErr(java.io.OutputStream)

Définissez un java.io.OutputStream à utiliser pour le flux d'erreur standard

dix

eval(String)

Évaluer une chaîne comme source Python et renvoyer le résultat

11

eval(PyObject)

Évaluer un objet de code Python et renvoyer le résultat

12

exec(String)

Exécuter une chaîne source Python dans l'espace de noms local

13

exec(PyObject)

Exécuter un objet de code Python dans l'espace de noms local

14

execfile(String filename)

Exécuter un fichier de source Python dans l'espace de noms local

15

execfile(java.io.InputStream)

Exécuter un flux d'entrée de source Python dans l'espace de noms local

16

compile(String)

Compilez une chaîne source Python en tant qu'expression ou module

17

compile(script, filename)

Compiler un script de source Python en tant qu'expression ou module

18

set(String name, Object value)

Définir une variable de type Object dans l'espace de noms local

19

set(String name, PyObject value)

Définir une variable de type PyObject dans l'espace de noms local

20

get(String)

Récupère la valeur d'une variable dans l'espace de noms local

21

get(String name, Class javaclass

Récupère la valeur d'une variable dans l'espace de noms local. La valeur sera renvoyée comme une instance de la classe Java donnée.

Le bloc de code suivant est un programme Java ayant un script Jython intégré “hello.py”.usingexecfile()méthode de l'objet PythonInterpreter. Il montre également comment une variable Python peut être définie ou lue à l'aide des méthodes set () et 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 ");
   }
}

Compilez et exécutez le programme Java ci-dessus pour obtenir la sortie suivante.

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