C++ to Java glue for AIDA

AIDAJNI 3.0.4 Release Notes

Release Notes Version: : 1.15 $.

The most recent version of this file is available here.
Release notes for all versions of AIDAJNI are available here.

AIDAJNI is a C++ adapter of AIDA - Abstract Interfaces for Data Analysis which connects to a Java implementation of AIDA, such as JAIDA.

AIDAJNI allows C++ programmers to use any Java AIDA implementation.

It allows for instance Geant4, written in C++, to create histograms and ntuples in Java and store them in .aida files, which can be analyzed using JAS3 - Java Analysis Studio.


AIDA Compliance

This adapter connects AIDA-C++ to AIDA-JNI. It almost fully supports the AIDA standard. The C++ side is AIDA 3.0 compliant (for usage in Geant 4.5.x), while the Java side is AIDA 3.2.1 compliant. From the user's perspective the differences between 3.0 and 3.2.1 are minimal.

Supported Platforms

Binaries are available and supported for the following combinations of architectures and compilers:

Major changes in AIDAJNI 3.0.4

For a full list of changes in AIDAJNI 3.0.4 see the AIDAJNI change log.
For a full list of changes in AIDA 3.0 and AIDA 3.2 see the AIDA change log.


These release notes list issues specific to the AIDAJNI implementation of AIDA. In general all of the AIDA documentation applies to AIDAJNI, in particular the following are useful:

C++ (3.0)

Java (3.2.1)


AIDAJNI is part of the FreeHEP Java Library an "Open Source" library distributed under the terms of the LGPL. If you have questions about the licensing please send a mail to:

Installing AIDAJNI

Download and install a Java AIDA Implementation which supports AIDA 3.2.1, for example JAIDA.

Download AIDAJNI for one or more platforms. These distributions overlay on top of each other, adding support for different architectures. The distribution creates the following directory structure:

AIDAJNI-version            containing license and release notes
AIDAJNI-version/bin        containing platform specific directories with setup scripts
AIDAJNI-version/examples   containing examples
AIDAJNI-version/include    containing all necessary include files
AIDAJNI-version/lib        containing platform specific directories with libraries
                           (shareable and static)


The current distributions do not contain source files.

To (re-)build AIDAJNI for a particular platform you need to get or .tar.gz file from the directory.

Follow the instructions in README-src.html contained in that distribution.

Building an Application with AIDAJNI

Set the environment variable AIDAJNI_HOME to your unpacked AIDAJNI distribution. Make sure JDK_HOME is set to your Java Development Kit (1.4 or better), and source the system specific aidajni-setup file (.sh/.csh fro Unix, .bat for Windows, .win32 for Cygwin).

Example for Linux-g++3, using tcsh:

setenv AIDAJNI_HOME /users/tom/AIDAJNI-3.0.4
setenv JDK_HOME /users/tom/j2dsk1.4.1
source /bin/Linux-g++3/aidajni-setup.csh

Now you are able to execute the aida-config utility:

aida-config --version	will display the version you installed.
aida-config --include 	will display the include options 
                        for your compiler.
aida-config --lib 	will display the library link options 
                        for your linker.

To compile (example for Linux-g++3):

g++ -c `aida-config --include`
g++ YourApplication.o `aida-config --lib`

Running an Application with AIDAJNI

Once you have run the aidajni-setup script successfully you can just execute your application.

Using AIDAJNI from Geant4

For Geant4 version 4.5.x JAIDA+AIDAJNI is distributed as an overlay product. This new overlay fixes some bugs in the A01 example and uses the setup and aida-config utilities to compile and link A01 with AIDAJNI.

The overlay is available from

For Geant4 version 4.6.x the fixes to the A01 example and the overlay are included in the Geant4 release. One only needs to install JAIDA and AIDAJNI as described above.

IMPORTANT: Make sure you do not link in OPENGL libraries since they pre-load, which will make the JavaVM crash when it tries to open its first Window/Frame. This does NOT apply to the Windows Operating System of course. This bug was reported to Sun Microsystems as early as JDK 1.3.1, but will not be fixed until JDK 1.5 comes out. Bugnumber 4638291

Features/Limitations of the Current Release

The following limitations exist:

Reporting Bugs

For discussion of features or problems related to AIDAJNI please use the AIDA mailing lists. To report bugs or request enhancements you can also use the AIDAJNI bug database.


The AIDJNI/examples directory contains which serves as a small test as well as an example. The subdirectories g++, CC and VC contain build scripts to compile and link into an executable. JAIDA and AIDAJNI must have been set up before running the build script.

The standard AIDATest package in C++ is used to test the AIDAJNI adapter. Some minor tweaks are being made to the tests and the JAIDA implementation so that all of them will pass, but we believe the AIDAJNI does not have major errors in it.