O'Reilly logo

Python in a Nutshell by Alex Martelli

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Embedding Jython in Java

Your Java-coded application can embed the Jython interpreter in order to use Jython for scripting. jython.jar must be in your Java CLASSPATH. Your Java code must import org.python.core.* and org.python.util.* in order to access Jython’s classes. To initialize Jython’s state and instantiate an interpreter, use the Java statements:

PySystemState.initialize( );
PythonInterpreter interp = new PythonInterpreter( );

Jython also supplies several advanced overloads of this method and constructor in order to let you determine in detail how PySystemState is set up, and to control the system state and global scope for each interpreter instance. However, in typical, simple cases, the previous Java code is all your application needs.

The PythonInterpreter Class

Once you have an instance interp of class PythonInterpreter, you can call method interp .eval to have the interpreter evaluate a Python expression held in a Java string. You can also call any of several overloads of interp .exec and interp .execfile to have the interpreter execute Python statements held in a Java string, a precompiled Jython code object, a file, or a Java InputStream.

The Python code you execute can import your Java classes in order to access your application’s functionality. Your Java code can set attributes in the interpreter namespace by calling overloads of interp .set, and get attributes from the interpreter namespace by calling overloads of interp .get. The methods’ overloads give you a ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required