Jython - Aplikasi Java
Unduh jython-standalone-2.7.0.jar - Untuk menanamkan Jython di aplikasi Java dari halaman unduhan resmi mereka: http://www.jython.org/downloads.html dan sertakan file jar ini di variabel lingkungan Java CLASSPATH.
Perpustakaan ini berisi PythonInterpreterkelas. Menggunakan objek kelas ini, skrip Python apa pun dapat dieksekusi menggunakanexecfile()metode. PythonInterpreter memungkinkan Anda untuk memanfaatkanPyObjectslangsung. Semua objek yang diketahui sistem runtime Jython diwakili oleh instance kelas PyObject atau salah satu subkelasnya.
Kelas PythonInterpreter memiliki beberapa metode yang biasa digunakan, yang dijelaskan dalam tabel di bawah ini.
Sr.No. | Metode & Deskripsi |
---|---|
1 | setIn(PyObject) Setel objek Python yang akan digunakan untuk aliran input standar |
2 | setIn(java.io.Reader) Setel java.io.Reader yang akan digunakan untuk aliran input standar |
3 | setIn(java.io.InputStream) Setel java.io.InputStream yang akan digunakan untuk aliran input standar |
4 | setOut(PyObject) Setel objek Python yang akan digunakan untuk aliran keluaran standar |
5 | setOut(java.io.Writer) Setel java.io.Writer yang akan digunakan untuk aliran keluaran standar |
6 | setOut(java,io.OutputStream) Setel java.io.OutputStream yang akan digunakan untuk aliran keluaran standar |
7 | setErr(PyObject) Setel objek kesalahan Python yang akan digunakan untuk aliran kesalahan standar |
8 | setErr(java.io.Writer Setel java.io.Writer yang akan digunakan untuk aliran kesalahan standar |
9 | setErr(java.io.OutputStream) Setel java.io.OutputStream yang akan digunakan untuk aliran kesalahan standar |
10 | eval(String) Evaluasi string sebagai sumber Python dan kembalikan hasilnya |
11 | eval(PyObject) Evaluasi objek kode Python dan kembalikan hasilnya |
12 | exec(String) Jalankan string sumber Python di namespace lokal |
13 | exec(PyObject) Jalankan objek kode Python di namespace lokal |
14 | execfile(String filename) Jalankan file sumber Python di namespace lokal |
15 | execfile(java.io.InputStream) Jalankan aliran input sumber Python di namespace lokal |
16 | compile(String) Kompilasi string sumber Python sebagai ekspresi atau modul |
17 | compile(script, filename) Kompilasi skrip sumber Python sebagai ekspresi atau modul |
18 | set(String name, Object value) Tetapkan variabel tipe Objek di namespace lokal |
19 | set(String name, PyObject value) Tetapkan variabel jenis PyObject di namespace lokal |
20 | get(String) Dapatkan nilai variabel di namespace lokal |
21 | get(String name, Class
Dapatkan nilai variabel di namespace lokal. Nilai akan dikembalikan sebagai turunan dari kelas Java yang diberikan. |
Blok kode berikut adalah program Java yang memiliki skrip Jython tertanam “hello.py”.usingexecfile()metode objek PythonInterpreter. Ini juga menunjukkan bagaimana variabel Python dapat disetel atau dibaca menggunakan metode set () dan 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 ");
}
}
Kompilasi dan jalankan program Java di atas untuk mendapatkan keluaran berikut.
Hello, world from Java
hello world from Python
42
x: 4
Goodbye