HDF5 in Java: What are the difference between the availabe APIs?
Just wanted to point out another option, jhdf.io it's a pure Java library for HDF5. Currently it is read only and doesn't cover the full HDF5 specification. However it can open and read lots of HDF5 files, and I hope to improve it over time. Being pure Java it is much easier to integrate into other Java projects than other options and avoids the issues associated with JNI.
Disclaimer: I am the author of the jhdf
library.
HDF Java follows a layered approach:
JHI5 - the low level JNI wrappers: very flexible, but also quite tedious to use.
Java HDF object package - a high-level interface based on JHI5.
HDFView - a Java-based viewer application based on the Java HDF object package.
JHDF5 provides a high-level interface building on the JHI5 layer which provides most of the functionality of HDF5 to Java. The API has a shallow learning curve and hides most of the house-keeping work from the developer. You can run the Java HDF object package (and HDFView) on the JHI5 interface that is part of JHDF5, so the two APIs can co-exist within one Java program.
Permafrost and Nujan seem far from being complete at this point and Permafrost hasn't seen a lot of activity recently, so they appear to be not the first choice at this point in time.
I think a good path for you is to have a look at both the Java HDF5 object package and JHDF5, decide which one of the two APIs fit your needs better and go with that one.
Disclaimer: I have worked on the JHDF5 interface, so I may be biased.