<?php include ("../links.php"); include ("../includes/header.html"); ?> <fieldset><h1>Compiling HDF-JAVA Source on Windows</h1></fieldset> <p> <h2> Source Files</h2> After you download and extract the source package, you will have the HDF Java native C code and the Java source code for JNI, HDF-Object package and HDFView. You need to compile the C source and Java source separately. The following instructions tell you how to build the C source in Visual C++ and the Java source from batch file. <p> <table WIDTH=100% BORDER COLS=2> <caption><b>HDF Java Product Source</b></caption> <tr> <th> Source directory</th> <th> Description</th> </tr> <tr> <td> hdf-java/native/hdflib/</td> <td> C header files and C source files for HDF4 Java Native Interface</td> </tr> <tr> <td> hdf-java/native/hdf5lib/</td> <td> C header files and C source files for HDF5 Java Native Interface</td> </tr> <tr> <td> hdf-java/ncsa/hdf/hdflib/</td> <td> Java source files for HDF4 Java Native Interface</td> </tr> <tr> <td> hdf-java/ncsa/hdf/hdf5lib/</td> <td> Java source files for HDF5 Java Native Interface</td> </tr> <tr> <td> hdf-java/ncsa/hdf/object/</td> <td> Java source files for HDF-Object package</td> </tr> <tr> <td> hdf-java/ncsa/hdf/view/</td> <td> Java source files for HDFView</td> </tr> </table> <hr> <h3> Requirements</h3> You need the following libraries in order to compile the HDF Java products. <UL> <LI>The Pre-Compiled HDF4 Binaries: obtain from <a href="/release4/obtain.html">/release4/obtain.html</a> <LI>The Pre-Compiled HDF5 Binaries: obtain from <a href="/HDF5/release/obtain5.html">/HDF5/release/obtain5.html</a> <LI> JPEG Library: obtain from <a href="http://www.hdfgroup.org/ftp/lib-external/jpeg/">http://www.hdfgroup.org/ftp/lib-external/jpeg/</a> <LI> GZIP Library: obtain from <a href="http://www.hdfgroup.org/ftp/lib-external/zlib/">http://www.hdfgroup.org/ftp/lib-external/zlib/</a> <LI> SZIP Library: obtain from <a href="http://www.hdfgroup.org/ftp/lib-external/szip/">http://www.hdfgroup.org/ftp/lib-external/szip/</a> <LI> JDK 1.5.0 or above </UL> <hr> <h3> Compile the HDF Java Native C</h3> To compile the HDF Java Native C code, you need to have <b>Microsoft Visual Studio 2008</b> installed on your machine. Under the windows\proj\all folder is the solution file. <DL> <DT><a href="..\windows\proj\jhdf\jhdf.vcproj">jhdf.vcproj</a> <DD>Project to compile HDF4 Java Native C, native/hdflib/*.c files<br> <b>Winsock functions, Ws2_32.lib, must be included, i.e. LINK32_FLAGS=... ws2_32.lib ...</b></DD></DT> <DT><a href="..\windows\proj\jhdf5\jhdf5.vcproj">jhdf5.vcproj</a> <DD>Project to compile HDF5 Java Native C, native/hdf5lib/*.c files</DD></DT> </DL> To use the batch files the <b>JAVAHOME</b> environment variable must be set. Using the VS2008 command line, change into the hdf-java\windows folder and run copy_hdf.bat. <hr> <h3> Compile the HDF native Source Code</h3> To compile the HDF native Source Code, you run the jnibuild.bat batch file within the hdf-java root folder. You must pass the compiler version (currently only VS9) as a parameter. <DL> <DT><a href="..\windows\jnibuild.bat">jnibuild.bat</a> <DD>Batch to compile HDF native source</DD></DT> </DL> <h3> Compile the HDF Java Source Code</h3> To compile the HDF Java Source Code, you need to have jdk1.5.0 or above installed on your machine. You run the javabuild.bat batch file within the hdf-java root folder. You must pass the hdf-java source folder (C:\hdf-java) as a parameter. <DL> <DT><a href="..\windows\javabuild.bat">javabuild.bat</a> <DD>Batch to compile HDF Java source</DD></DT> </DL> <h3> Test the HDF Java Build</h3> To test the HDF Java Build, you need to have jdk1.5.0 or above installed on your machine. You run the javacheck.bat batch file within the hdf-java root folder. You must pass the hdf-java source folder (C:\hdf-java) as a parameter. <DL> <DT><a href="..\windows\javacheck.bat">javacheck.bat</a> <DD>Batch to test HDF Java</DD></DT> </DL> <h3> Install the HDF Java Build</h3> To install the HDF Java Build, you need to have jdk1.5.0 or above installed on your machine. You run the javainstall.bat batch file within the hdf-java root folder. You must pass the destination folder (C:\programs\hdf-java) as a parameter. <DL> <DT><a href="..\windows\javainstall.bat">javainstall.bat</a> <DD>Batch to install HDF Java</DD></DT> </DL> <hr> <h3> Running the HDF Java code</h3> After successfully run the batch files, the binaries of the HDF Java products are packed and put at destination folder. <p> <table BORDER COLS=2 > <tr> <th width=25% BGCOLOR="#CCDFF">Binary file</th> <th width=75% BGCOLOR="#CCDDFF" colspan="2">Description</th> </tr> <tr> <td>lib/jhdf.jar</td> <td colspan="2">The Java HDF Interface, accesses the native HDF4 library</td> </tr> <tr> <td>lib/jhdf5.jar</td> <td colspan="2">The Java HDF5 Interface, accesses the native HDF5 library</td> </tr> <tr> <td>lib/jhdfobj.jar</td> <td colspan="2">The common HDF object package, ncsa.hdf.object</td> </tr> <tr> <td>lib/jhdf4obj.jar</td> <td colspan="2">The HDF4 object package, ncsa.hdf.object.h4</td> </tr> <tr> <td>lib/jhdf5obj.jar</td> <td colspan="2">The HDF5 object package, ncsa.hdf.object.h5</td> </tr> <tr> <td>lib/jhdfview.jar</td> <td colspan="2">The ncsa.hdf.view package, for HDFView only.</td> </tr> <tr> <td> </td> <td colspan="2" >lib/win/</td> </tr> <tr> <td> jhdf.dll</td> <td colspan="2">The native HDF4 library and JNI implementation (called by jhdf.jar)</td> </tr> <tr> <td> jhdf5.dll</td> <td colspan="2">The native HDF5 library and JNI implementation (called by jhdf5.jar)</td> </tr> </table> <hr> <h3> Using nt_makefile</h3> You may also use native/hdf5lib/nt_makfile and native/hdflib/nt_makefile to build HDF5 JNI and HDF4 JNI respectively. <p /> To comiple the source code, run 'nmake -f nt_makefile' You have to add your VS studio bin path to your system path, e.g.<br /> set path=%path";"C:\Program Files\Microsoft Visual Studio 8\VC\bin" <p /> We do not provide any support for nt_makefile. If you encounter any problems for using nt_makefile, you should be able to find solutions online. <p /> <?php include ("../includes/footer.html"); ?>