Jython - aplikacja Java

Pobieranie jython-standalone-2.7.0.jar - Do osadzania Jythona w aplikacjach Java z ich oficjalnej strony pobierania: http://www.jython.org/downloads.html i dołącz ten plik jar do zmiennej środowiskowej Java CLASSPATH.

Ta biblioteka zawiera PythonInterpreterklasa. Korzystając z obiektu tej klasy, można wykonać dowolny skrypt w języku Python przy użyciu rozszerzeniaexecfile()metoda. PythonInterpreter umożliwia korzystanie zPyObjectsbezpośrednio. Wszystkie obiekty znane systemowi wykonawczemu Jython są reprezentowane przez instancję klasy PyObject lub jedną z jej podklas.

Klasa PythonInterpreter zawiera kilka regularnie używanych metod, które zostały wyjaśnione w poniższej tabeli.

Sr.No. Metoda i opis
1

setIn(PyObject)

Ustaw obiekt Pythona, który ma być używany jako standardowy strumień wejściowy

2

setIn(java.io.Reader)

Ustaw java.io.Reader do użycia dla standardowego strumienia wejściowego

3

setIn(java.io.InputStream)

Ustaw java.io.InputStream do użycia dla standardowego strumienia wejściowego

4

setOut(PyObject)

Ustaw obiekt Pythona, który ma być używany jako standardowy strumień wyjściowy

5

setOut(java.io.Writer)

Ustaw java.io.Writer do użycia dla standardowego strumienia wyjściowego

6

setOut(java,io.OutputStream)

Ustaw java.io.OutputStream do użycia dla standardowego strumienia wyjściowego

7

setErr(PyObject)

Ustaw obiekt błędu Pythona, który ma być używany dla standardowego strumienia błędów

8

setErr(java.io.Writer

Ustaw java.io.Writer, który będzie używany dla standardowego strumienia błędów

9

setErr(java.io.OutputStream)

Ustaw java.io.OutputStream do użycia dla standardowego strumienia błędów

10

eval(String)

Oceń ciąg jako źródło Pythona i zwróć wynik

11

eval(PyObject)

Oceń obiekt kodu Python i zwróć wynik

12

exec(String)

Wykonaj łańcuch źródłowy języka Python w lokalnej przestrzeni nazw

13

exec(PyObject)

Wykonaj obiekt kodu Pythona w lokalnej przestrzeni nazw

14

execfile(String filename)

Wykonaj plik źródła języka Python w lokalnej przestrzeni nazw

15

execfile(java.io.InputStream)

Wykonaj strumień wejściowy źródła języka Python w lokalnej przestrzeni nazw

16

compile(String)

Skompiluj ciąg źródłowy języka Python jako wyrażenie lub moduł

17

compile(script, filename)

Skompiluj skrypt źródła Pythona jako wyrażenie lub moduł

18

set(String name, Object value)

Ustaw zmienną typu Object w lokalnej przestrzeni nazw

19

set(String name, PyObject value)

Ustaw zmienną typu PyObject w lokalnej przestrzeni nazw

20

get(String)

Uzyskaj wartość zmiennej w lokalnej przestrzeni nazw

21

get(String name, Class javaclass

Uzyskaj wartość zmiennej w lokalnej przestrzeni nazw. Wartość zostanie zwrócona jako instancja danej klasy Java.

Poniższy blok kodu to program w języku Java z wbudowanym skryptem w języku Jython “hello.py”.usingexecfile()metoda obiektu PythonInterpreter. Pokazuje również, jak zmienną Pythona można ustawić lub odczytać za pomocą metod set () i 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 ");
   }
}

Skompiluj i uruchom powyższy program Java, aby uzyskać następujące dane wyjściowe.

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