What is Jython?
The Jython project provides implementations of Python in Java, providing to Python the benefits of running on the JVM and access to classes written in Java. The current release (a Jython 2.7.x) only supports Python 2 (sorry). There is work towards a Python 3 in the project’s GitHub repository.
Jython implementations are freely available for both commercial and non-commercial use. They are distributed with source code under the PSF License v2.
Jython is complementary to Java and is especially suited for the following tasks:
- Embedded scripting - Java programmers can add the Jython libraries to their system to allow end users to write simple or complicated scripts that add functionality to the application.
- Interactive experimentation - Jython provides an interactive interpreter that can be used to interact with Java packages or with running Java applications. This allows programmers to experiment and debug any Java system using Jython.
- Rapid application development - Python programs are typically 2-10x shorter than the equivalent Java program. This translates directly to increased programmer productivity. The seamless interaction between Python and Java allows developers to freely mix the two languages both during development and in shipping products.
Here is an example of running Python code inside a simple Java application
import org.python.util.PythonInterpreter;
public class JythonHelloWorld {
public static void main(String[] args) {
try(PythonInterpreter pyInterp = new PythonInterpreter()) {
pyInterp.exec("print('Hello Python World!')");
}
}
}
Here is an example of using Java from Python code
from java.lang import System # Java import
print('Running on Java version: ' + System.getProperty('java.version'))
print('Unix time from Java: ' + str(System.currentTimeMillis()))
Getting Started
Ready to get started? Head over to Downloads.
Or you could read a quick overview of features specific to Jython.
A more detailed introduction and reference can be found in the Jython Book.
Who uses Jython?
Jython is embedded in lots of projects. See some from MVNRepository
- IBM Websphere - Use Jython to provide administrative scripting capabilities.
- Apache PIG - Use Jython to support user defined functions.
- ImageJ - Use Jython to provide scripted image processing.
- GDA - Use Jython to script scientific experiments.
- Robot Framework - A generic test automation framework for acceptance testing and acceptance test-driven development (ATDD) which runs on Jython.
- TigerJython - An educational programming environment that is based on Jython.
- JEM/JythonMusic - An environment for music making and creative programming using Jython.