HOME

TheInfoList



OR:

Jython is an implementation of the
Python programming language Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically-typed and garbage-collected. It supports multiple programming par ...
designed to run on the
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
platform. The implementation was formerly known as JPython until 1999.


Overview

Jython programs can import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules. Jython includes almost all of the modules in the standard
Python programming language Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically-typed and garbage-collected. It supports multiple programming par ...
distribution, lacking only some of the modules implemented originally in C. For example, a user interface in Jython could be written with
Swing Swing or swinging may refer to: Apparatus * Swing (seat), a hanging seat that swings back and forth * Pendulum, an object that swings * Russian swing, a swing-like circus apparatus * Sex swing, a type of harness for sexual intercourse * Swing rid ...
, AWT or SWT. Jython compiles Python source code to
Java bytecode In computing, Java bytecode is the bytecode-structured instruction set of the Java virtual machine (JVM), a virtual machine that enables a computer to run programs written in the Java programming language and several other programming languages, ...
(an intermediate language) either on demand or statically.


History

Jython was initially created in late 1997 to replace C with
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
for performance-intensive code accessed by Python programs, moving to
SourceForge SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrori ...
in October 2000. The
Python Software Foundation The Python Software Foundation (PSF) is an American nonprofit organization devoted to the Python programming language, launched on March 6, 2001. The mission of the foundation is to foster development of the Python community and is responsible for ...
awarded a grant in January 2005. Jython 2.5 was released in June 2009.


Status and roadmap

The most recent release is Jython 2.7.2. It was released on 21 March 2020 and is compatible with Python 2.7. Python 3 compatible changes are planned in Jython 3 Roadmap. Although Jython implements the Python language specification, it has some differences and incompatibilities with
CPython CPython is the reference implementation of the Python programming language. Written in C and Python, CPython is the default and most widely used implementation of the Python language. CPython can be defined as both an interpreter and a compi ...
, which is the
reference implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
of Python.


License terms

From version 2.2 on, Jython (including the standard library) is released under the
Python Software Foundation License The Python Software Foundation License (PSFL) is a BSD-style, permissive software license which is compatible with the GNU General Public License (GPL). Its primary use is for distribution of the Python project software and its documentati ...
(v2). Older versions are covered by the ''Jython 2.0, 2.1 license'' and the ''JPython 1.1.x Software License''. The command line interpreter is available under the Apache Software License.


Usage

* JBoss Application Server's
command line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
scripting using Jython *
Oracle Weblogic Server Oracle WebLogic Server is a Java EE application server currently developed by Oracle Corporation. Oracle acquired WebLogic Server when it purchased BEA Systems in 2008. Application Server versions * WebLogic Server 14c (14.1.1) - March 30, 20 ...
Scripting Tool uses Jython * IBM
Rational Rationality is the quality of being guided by or based on reasons. In this regard, a person acts rationally if they have a good reason for what they do or a belief is rational if it is based on strong evidence. This quality can apply to an abil ...
development tools allow Jython scripting * IBM
WebSphere Application Server WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within ...
tool scripting with ''
wsadmin The wsadmin tool is a command shell for the purpose of performing systems administration on all the artifacts in an IBM WebSphere Application Server (WAS) cell. It gets its name from the name of the shell script that invokes this command shell. ...
'' allows using Jython and Jacl * ZK – a Java Ajax framework that allows glue logic written in Jython *
Ignition Ignition may refer to: Science and technology * Firelighting, the human act of creating a fire for warmth, cooking and other uses * Combustion, an exothermic chemical reaction between a fuel and an oxidant * Fusion ignition, the point at which a ...
- A software development platform focused on HMI and SCADA *
Ghidra Ghidra (pronounced gee-druh; ) is a free and open source reverse engineering tool developed by the National Security Agency (NSA) of the United States. The binaries were released at RSA Conference in March 2019; the sources were published one mo ...
- a
reverse engineering Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompli ...
tool developed by the
NSA The National Security Agency (NSA) is a national-level intelligence agency of the United States Department of Defense, under the authority of the Director of National Intelligence (DNI). The NSA is responsible for global monitoring, collectio ...
allows plugins to be written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
or Jython *
openHAB open Home Automation Bus (openHAB) is an open source home automation software written in Java. It is deployed on premises and connects to devices and services from different vendors. As of 2019, close to 300 bindings are available as OSGi modules ...
- home automation software


See also

*
List of Java scripting languages This list of JVM Languages comprises notable computer programming languages that are used to produce computer software that runs on the Java virtual machine (JVM). Some of these languages are interpreted by a Java program, and some are compiled ...
*
IronPython IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 ...
– an implementation of Python for .NET and Mono *
PyPy PyPy () is an implementation of the Python programming language. PyPy often runs faster than the standard implementation CPython because PyPy uses a just-in-time compiler. Most Python code runs well on PyPy except for code that depends on CPyt ...
– a self-hosting interpreter for the Python programming language. *
JRuby JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/ GPL/ LGPL license. JRuby is tightly integrated with Java to allow the embeddi ...
– similar project for the Ruby programming language. *
GraalVM GraalVM is a Java VM and JDK based on HotSpot/OpenJDK, implemented in Java. It supports additional programming languages and execution modes, like ahead-of-time compilation of Java applications for fast startup and low memory footprint. The ...
- a polyglot runtime written in Java, has a Python 3 implementation


References


External links

* {{Authority control JVM programming languages Object-oriented programming languages Python (programming language) implementations Scripting languages Software using the PSF license