Skip to main content

a C++ code generator for calling Java from C++/Python

Project description

JCC is a C++ code generator for producing the glue code necessary to call into Java classes from CPython via Java’s Native Invocation Interface (JNI).

JCC generates C++ wrapper classes that hide all the gory details of JNI access as well Java memory and object reference management.

JCC generates CPython types that make these C++ classes accessible from a Python interpreter. JCC attempts to make these Python types pythonic by detecting iterators and property accessors. Iterators and mappings may also be declared to JCC.

JCC has been built on Python 2.3, 2.4 and 2.5 and has been used with various Java Runtime Environments such as Sun Java 1.4, 1.5 and 1.6, Apple’s Java 1.4 and 1.5 on Mac OS X and open source Java OpenJDK 1.7 builds.

JCC is known to work on Intel and PowerPC Mac OS X 10.3, 10.4 and 10.5, Ubuntu Linux Dapper, Feisty and Gutsy, Windows 2000 and Windows XP.

JCC is written in C++ and Python. It uses Java’s reflection API to do its job and needs a Java Runtime Environment to be present to operate.

JCC is built with distutils:

python build
sudo python install

The setuptools package is required to build JCC on Python 2.3.

Except for Mac OS X - where Apple’s Java comes pre-installed in a known framework location - JCC’s file needs to be edited before being built to specify the location of the Java Runtime Environment’s header files and libraries.

The svn sources for JCC are available at:

See README and INSTALL for more information about JCC.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

JCC-1.7.tar.gz (53.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page