Jython - Java Uygulaması
İndir jython-standalone-2.7.0.jar - Jython'u Java uygulamalarına resmi indirme sayfalarından yerleştirmek için: http://www.jython.org/downloads.html ve bu jar dosyasını Java CLASSPATH ortam değişkenine dahil edin.
Bu kitaplık şunları içerir: PythonInterpretersınıf. Bu sınıfın nesnesini kullanarak, herhangi bir Python betiği,execfile()yöntem. PythonInterpreter, aşağıdakilerden yararlanmanızı sağlar:PyObjectsdirekt olarak. Jython çalışma zamanı sistemi tarafından bilinen tüm nesneler, PyObject sınıfının bir örneği veya alt sınıflarından biri tarafından temsil edilir.
PythonInterpreter sınıfı, aşağıda verilen tabloda açıklanan düzenli olarak kullanılan bazı yöntemlere sahiptir.
Sr.No. | Yöntem ve Açıklama |
---|---|
1 | setIn(PyObject) Standart giriş akışı için kullanılacak Python nesnesini ayarlayın |
2 | setIn(java.io.Reader) Standart giriş akışı için kullanmak üzere bir java.io.Reader ayarlayın |
3 | setIn(java.io.InputStream) Standart giriş akışı için kullanmak üzere bir java.io.InputStream ayarlayın |
4 | setOut(PyObject) Standart çıktı akışı için kullanılacak Python nesnesini ayarlayın |
5 | setOut(java.io.Writer) Standart çıktı akışı için kullanmak üzere java.io.Writer'ı ayarlayın |
6 | setOut(java,io.OutputStream) Standart çıktı akışı için kullanmak üzere java.io.OutputStream'i ayarlayın |
7 | setErr(PyObject) Standart hata akışı için kullanılacak bir Python hata nesnesi ayarlayın |
8 | setErr(java.io.Writer Standart hata akışı için kullanmak üzere bir java.io.Writer ayarlayın |
9 | setErr(java.io.OutputStream) Standart hata akışı için kullanmak üzere bir java.io.OutputStream ayarlayın |
10 | eval(String) Bir dizeyi Python kaynağı olarak değerlendirin ve sonucu döndürün |
11 | eval(PyObject) Bir Python kod nesnesini değerlendirin ve sonucu döndürün |
12 | exec(String) Yerel ad alanında bir Python kaynak dizesi yürütün |
13 | exec(PyObject) Yerel ad alanında bir Python kodu nesnesi yürütün |
14 | execfile(String filename) Yerel ad alanında bir Python kaynağı dosyası yürütün |
15 | execfile(java.io.InputStream) Yerel ad alanında Python kaynağının giriş akışını yürütün |
16 | compile(String) Bir Python kaynak dizesini bir ifade veya modül olarak derleyin |
17 | compile(script, filename) Python kaynağının bir komut dosyasını bir ifade veya modül olarak derleyin |
18 | set(String name, Object value) Yerel ad alanında Nesne türünde bir değişken ayarlayın |
19 | set(String name, PyObject value) Yerel ad alanında PyObject türünde bir değişken ayarlayın |
20 | get(String) Yerel ad alanındaki bir değişkenin değerini alın |
21 | get(String name, Class Yerel ad alanındaki bir değişkenin değerini alın. Değer, verilen Java sınıfının bir örneği olarak döndürülecektir. |
Aşağıdaki kod bloğu, yerleşik bir Jython betiğine sahip bir Java programıdır. “hello.py”.usingexecfile()PythonInterpreter nesnesinin yöntemi. Ayrıca bir Python değişkeninin set () ve get () yöntemleri kullanılarak nasıl ayarlanabileceğini veya okunabileceğini gösterir.
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 ");
}
}
Aşağıdaki çıktıyı elde etmek için yukarıdaki Java programını derleyin ve çalıştırın.
Hello, world from Java
hello world from Python
42
x: 4
Goodbye