jpy is now being further developed in a dedicated GitHub organision maintained by members of the companies DeepHaven and Brockmann Consult. This repo will soon be archived. Please use the new jpy-consortium/jpy for any issues or PRs, thanks!
jpy is a bi-directional Python-Java bridge which you can use to embed Java code in Python programs or the other way round. It has been designed particularly with regard to maximum data transfer speed between the two languages. It comes with a number of outstanding features:
jpy has been tested with Python 3.4–3.8 and OpenJDK 8 on 64-bit Ubuntu Linux, Windows 10, and macOS.
The initial development of jpy was driven by the need to write Python extensions to an established scientific imaging application programmed in Java, namely the SNAP toolbox, the SeNtinel Application Platform project, funded by the European Space Agency (ESA). (jpy is bundled with the SNAP distribution.)
Writing such Python plug-ins for a Java application usually requires a bi-directional communication between Python and Java since the Python extension code must be able to call back into the Java APIs.
For more information please have a look into jpy's
Install a JDK 8, preferably the Oracle distribution. Set
JPY_JDK_HOME to point to your JDK installation and run the build script:
export JDK_HOME=<your-jdk-dir> export JAVA_HOME=$JDK_HOME python setup.py build maven bdist_wheel
On success, the wheel is found in the
To deploy the
jpy.jar (if you don't know why you need this step, this is not
mvn clean deploy -DskipTests=true
JPY_JDK_HOME to point to your JDK installation. You'll
need Windows SDK 7.1 or Visual Studio C++ to build the sources. With Windows
> SET VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\ > SET DISTUTILS_USE_SDK=1 > C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv /x64 /release > SET JDK_HOME=<your-jdk-dir> > python setup.py build maven bdist_wheel
With Visual Studio 14 and higher it is much easier::
> SET VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\ > SET JDK_HOME=<your-jdk-dir> > python setup.py build maven bdist_wheel
On success, the wheel can be found in the
The target reader of this section is a jpy developer wishing to release a new jpy version. Note: You need to have Sphinx installed to update the documentation.
-SNAPSHOTqualifier from versions names in both the Maven
setup.pyfiles, and update the version numbers and copyright years in
mvn javadoc:javadocwhich will update directory
cd docand run
As of 2020-08-27, Python wheel packages for jpy are automatically built on AppVeyor, but at present they are uploaded only to a private FTP server and not publicly released. Wheels are built for Python versions 3.4, 3.5, 3.6, 3.7, and 3.8 on Linux, Windows, and macOS (≥10.9). Only 64-bit wheels are built.
The repository also contains an outdated configuration for automated Travis builds, but this configuration is currently unmaintained and broken.