104 lines
3.7 KiB
HTML
104 lines
3.7 KiB
HTML
|
<?php
|
||
|
include ("../../../links.php");
|
||
|
include ("../../../includes/header.html");
|
||
|
?>
|
||
|
<fieldset><h1>NCSA Java HDF5 Interface (JHI5)</h1> </fieldset>
|
||
|
<h2> <a href="jhi5.html">JHI5 Design Notes</a></h2>
|
||
|
|
||
|
<h2><u>What it is</u></h2>
|
||
|
The <b>Java HD5 Interface (JHI5)</b> is a Java package (
|
||
|
<a href="../../javadocs/ncsa/hdf/hdf5lib/package-summary.html">ncsa.hdf.hdf5lib</a>)
|
||
|
that ``wraps around'' the NCSA HDF5 library.
|
||
|
<br>
|
||
|
<br>
|
||
|
<center><table BORDER=1 COLS=1 WIDTH="71%" BGCOLOR="#dbeaf5" >
|
||
|
<tr>
|
||
|
<td>
|
||
|
<center>Note: The JHI5 does not support HDF4 or earlier. See the
|
||
|
<a href="../jhi/index.html">JHI</a>.</center>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table></center>
|
||
|
|
||
|
<p>The JHI5 may be used by any Java application that needs to access HDF-5
|
||
|
files. It is extremely important to emphasize that <i>this package is not
|
||
|
a pure Java implementation of the HDF-5 library.</i> The JHI5 calls the
|
||
|
same HDF-5 library that is used by C or FORTRAN programs. (Note that this
|
||
|
product cannot be used in most network browsers because it accesses the
|
||
|
local disk using native code.)
|
||
|
<p>The Java HDF-5 Interface consists of Java classes and a dynamically
|
||
|
linked native library. The Java classes declare native methods, and the
|
||
|
library contains C functions which implement the native methods. The C
|
||
|
functions call the standard HDF-5 library, which is linked as part of the
|
||
|
same library on most platforms.
|
||
|
<p>The central part of the JHI5 is the Java class <i>
|
||
|
<a href="../../javadocs/ncsa/hdf/hdf5lib/H5.html">ncsa.hdf.hdf5lib.H5</a></i>.
|
||
|
The <i>H5 </i>class calls the standard (<i>i.e.</i>, `native' code) HDF-5
|
||
|
library, with native methods for most of the HDF-5 functions.
|
||
|
|
||
|
<h3>
|
||
|
<u>How to use it</u></h3>
|
||
|
The JHI5 is used by Java classes to call the HDF-5 library, in order to
|
||
|
create HDF-5 files, and read and write data in existing HDF-5 files.
|
||
|
<p>For example, the HDF-5 library had the function <b>H5Fopen</b> to open
|
||
|
an HDF-5 file. The Java interface is the class <i>
|
||
|
<a href="../../javadocs/ncsa/hdf/hdf5lib/H5.html">ncsa.hdf.hdf5lib.H5</a></i>,
|
||
|
which has a method:
|
||
|
<pre><b>static native int H5Fopen(String filename, int flags, int access );</b></pre>
|
||
|
The native method is implemented in C using the
|
||
|
<a href="http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html">Java
|
||
|
Native Method Interface </a>(JNI). This is written something like the following:
|
||
|
<pre><b>JNIEXPORT jint
|
||
|
JNICALL Java_ncsa_hdf_hdf5lib_H5_H5Fopen
|
||
|
(
|
||
|
JNIEnv *env,
|
||
|
jclass class,
|
||
|
jstring hdfFile,
|
||
|
jint flags,
|
||
|
jint access)
|
||
|
{
|
||
|
|
||
|
/* ...convert Java String to (char *) */
|
||
|
|
||
|
/* call the HDF library */
|
||
|
retVal = H5Fopen((char *)file, (unsigned)flags, (hid_t)access );
|
||
|
|
||
|
/* ... */
|
||
|
}</b></pre>
|
||
|
This C function calls the HDF-5 library and returns the result appropriately.
|
||
|
<p>There is one native method for each HDF entry point (several hundred
|
||
|
in all), which are compiled with the HDF library into a dynamically loaded
|
||
|
library (<i>libjhdf5</i>). Note that this library must be built for each
|
||
|
platform.
|
||
|
<p>To call the HDF `<b><i>H5Fopen</i></b>' function, a Java program would
|
||
|
import the package '<i><b>ncsa.hdf.hdf5lib.*</b>'</i>, and invoke the method
|
||
|
on the class '<b><i>H5</i></b>'. The Java program would look something
|
||
|
like this:
|
||
|
<pre><b>import ncsa.hdf.hdf5lib.*;
|
||
|
|
||
|
{
|
||
|
/* ... */
|
||
|
|
||
|
try {
|
||
|
file = H5.Hopen("myFile.hdf", flags, access );
|
||
|
} catch (HDF5Exception ex) {
|
||
|
//...
|
||
|
}
|
||
|
|
||
|
/* ... */
|
||
|
}</b></pre>
|
||
|
The <i><b>H5</b> </i>class automatically loads the native method implementations
|
||
|
and the HDF-5 library.
|
||
|
|
||
|
<h3>
|
||
|
<a NAME="DOWNLOAD"></a>To Obtain</h3>
|
||
|
The JHI5 is included with the HDF-Java Products, which can be downloaded from the following page:
|
||
|
<A HREF="../../index.html">the hdf-java home page</A>
|
||
|
|
||
|
|
||
|
<?php
|
||
|
include ("../../../includes/footer.html");
|
||
|
?>
|
||
|
|
||
|
|