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
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