FAQ -- Frequently Asked Questions about Java and HDF

Last updated on March 15, 1998

Contents


    General Information

  1. How do I access HDF files from Java?
  2. Can I read HDF files with the JHV?
  3. Can I read HDF-EOS files with the JHV?
  4. How do I use HDF with Java?
  5. Can I use the Java HDF Viewer with a Web browser?
  6. Is there (will there be) a Java implmentation of the HDF library?
  7. Can I save/edit/create HDF files with the JHV browser?
  8. What is the latest official release of Java HDF and what platforms does it support?
  9. What are the new features included in the latest release?

    Obtaining the Java HDF Software and Documentation

  10. Where can I get the Java HDF source code and information relevant to Java and HDF?
  11. What documentation for the HDF Java interface is available on the NCSA ftp server?

    Installing and Compiling

  12. How do I install the Java HDF interface?
  13. How do I compile Java applications that call HDF functions?

    HDF Tools for Collaboration and Visualization

  14. Is there a Habanerof version of the JHV?
  15. Which NCSA Java tools can I use to view HDF objects?
  16. Is there any commercial or public domain visualization software that accepts HDF files?

    Backward/Forward Compatibility

  17. What versions of HDF are supported for Java?
  18. What versions of Java can I use?

    Other: Mailing List, Bug Reports

  19. Is there a mailing list for discussions and questions about HDF and Java?
  20. How do I make a bug report?

1) How do I access HDF files from Java?

Java applications can access HDF files by calling the HDF library as a ``native'' library. The Java HDF API provides a standard interface to the HDF 4.1 library, all Java programs should use this interface.

It is very important to realized that the HDF Java API is an interface to the regular HDF library. A Java program access the HDF files through the same HDF library code as a C program.

2) Can I read any given HDF file with the JHV?

The Java HDF products are generally compatible with all HDF files produced by the NCSA HDF library.

Due to memory limits in the implementation of Java Virtual Machines, it may not be possible to view some large images and datasets at full resolution.

The Java HDF Viewer can display the objects and metadata from most HDF files. It can show the data from two and three dimensional datasets and tables. Higher dimensional data cannot be visualized.

3) Can I read HDF-EOS files with the JHV?

HDF-EOS is a profile that runs on top of the standard HDF library. HDF-EOS provides standard metadata for EOS data, and several object types not supported by HDF (grid, swath, and point). HDF-EOS data objects and metadata are stored as combinations of standard HDF objects.

The HDF Java products can access HDF-EOS files, and will show all their contents. However, the NCSA HDF Java products do not "understand" HDF-EOS metadata or objects. Consequently, the meaning of the contents of an HDF-EOS file might be difficult to interpret using the NCSA Java products.

4) How do I use HDF with Java?

Java applications access HDF by using the package 'ncsa.hdf.hdflib', which defines Java native methods for most HDF library entry points. In general, the Java program can do exactly the same operations as a C program.

See the Java HDF Interface documentation.

6) Can I use the Java HDF Viewer with a Web browser?

The JHV uses the HDF library (i.e., the `native code' library) to access the HDF files. Most Web browsers do not allow network loaded applets to access disk files or native libraries. For this reason, the current release of the JHV cannot be used as an applet.

Future releases may provide network loadable applets for accessing HDF files.

7) Is there (will there be) a Java implmentation of the HDF library?

There are no current plans to re-write the HDF 4.1 in Java. This would be a very large effort, which is not feasible at this time.

8) Can I save/edit/create HDF files with the JHV browser?

The Java HDF Viewer is a tool intended for browsing and visualizing HDF files. The current release has no capability to write or modify HDF files. Various editing features may be supported in the future.

9) What is the latest official release of HDF for Java, and what platforms does it support ?

The Java HDF interface is part of HDF version 4.1 Release 2. The Java HDF interface is only supported on platforms which support Java JDK 1.1.1 or above.

Platforms Supported for Java:

   
  Platform(OS)            
  ------------           
  Sun4(Solaris 2.5)     
  SGI-Indy(IRIX5.3)    
  IBM PC - Intel Pentium
       Solarisx86 (2.5) 
       Linux(elf)  2.0.27 
  Windows NT/95          

10) What are the new features included in the current release?

The current release supports nearly all the entry points described in the HDF 4.1r2 Reference Manual. A few routines were both difficult to implement and irrelevant to Java programs, and so were omitted.

There are many new features. See the Release Notes.

11) Where can I get the HDF Java source code and information relevant to Java and HDF?

The Java HDF source code is available as part of the HDF library source. For information, take a look at the HDF home page:
              http://hdf.ncsa.uiuc.edu/ 
You can download the source code (free of charge) from the NCSA anonymous ftp server or from the HDF anonymous ftp server (a mirror site of the NCSA ftp server):
       NCSA ftp server:  ftp.ncsa.uiuc.edu
       HDF ftp server:   hdf.ncsa.uiuc.edu (141.142.21.14) 
On the NCSA ftp server, the files are located in:
   HDF/ 
On the HDF ftp server, the files are located in:
   pub/dist/HDF/ 

12) What documentation for Java and HDF is available on the ftp server?

Information about the HDF Java products is available at:

All of the HDF documentation, old and new, is available on the NCSA ftp server (ftp.ncsa.uiuc.edu) in the directory:

       /HDF/Documentation/ 
If running HDF 4.1r1, following is the documentation which will be of use to you:

    HDF User's Guide v4.1r1 
      Full coverage of all HDF routines and command-line utilities; 
      includes many examples.  This is available in Postscript, 
      Framemaker MIF, and PDF formats from the NCSA ftp server 
      (ftp.ncsa.uiuc.edu) in the directory:

         /HDF/Documentation/HDF4.1r1/Users_Guide/

      ASCII versions of the examples from the User's Guide can be 
      found in:

         /HDF/Documentation/HDF4.1r1/Users_Guide/Examples_ASCII/ 
 
    HDF Reference Manual V4.1r1 
      An alphabetical listing of all HDF routines and command-line 
      utilities. An html version is available from the HDF home page 
      under "Information about HDF" (http://hdf.ncsa.uiuc.edu/doc.html).
      It is available in Postscript, Framemaker MIF, PDF, and HTML formats
      from the NCSA ftp server (ftp.ncsa.uiuc.edu) in the directories:

         /HDF/Documentation/HDF4.1r1/Ref_Manual/       (ps, mif, pdf)
         /HDF/Documentation/HDF4.1r1/Ref_Manual/html/  (html) 

    HDF Specifications and Developer's Guide v3.2 
      Designed for those who need detailed information about HDF, such as HDF 
      application program interface developers. It describes the basic 
      structure, components, and software layers of HDF; it specifies 
      supported HDF tags and discusses the portability of HDF.  It is 
      available from the NCSA ftp server (ftp.ncsa.uiuc.edu) in the 
      directory:

         /HDF/Documentation/HDF.Specs/HDFSpecs.old.postscript/

      A relatively newer Macintosh version is also available:

         /HDF/Documentation/HDF.Specs/HDFSpecs_DG.msw.sit.hqx 

13) How do I install the Java HDF interface?

The Java HDF distribution requires HDF 4.1 r 2. Build and install HDF first, if it is not already installed.

To configure the distribution, cd to the 'java-hdf' and type:

            ./configure

To compile the HDF library interface and JHV utility, type:

        make

To find out the available make targets, type:

        make help

To install the HDF Java classes, support libraries, and JHV utility, type:

        make install

To install the 'javadoc' man pages for the HDF Java classes, type:

        make install-javadocs

See the README and the INSTALL files in the java-hdf directory.

14) How do I compile Java application programs that call HDF functions?

A Java application uses the HDF library by importing the Java package 'ncsa.hdf.hdflib.'.

The Java classes must be in a directory in CLASSPATH, and the HDF Java library must be in the LD_LIBRARY_PATH.

For more information, see the Java HDF Inteface page.

15) Is there a Habanerof version of the JHV?

No.

16) Which NCSA Java tools can I use to view HDF objects?

The HDF Java distribution includes the NCSA Java-based HDF Viewer (JHV).

The JHV is compiled and installed as part of the Java HDF package.

The JHV is invoked by the script provided in the Java HDF distribution, 'bin/jhv', which is configured and installed as part of the build.

17) Is there any commercial or public domain Java software that accesses HDF files?

Find out

It is not known for sure what Java tools use HDF.

18) What versions of HDF are supported for Java?

The Java HDF interface is built using HDF 4.1r1. It is compatible with everything that HDF 4.1 is compatible with.

19) What versions of Java can I use?

The current release of the JHV requires Java JDK 1.1 or above.

20) Is there a mailing list for discussions and questions about HDF and Java?

"hdf-java@ncsa.uiuc.edu" is a mailing list for HDF and its users to share ideas and information about the HDF and Java. If you wish to be added to or removed from the "hdf-java" mailing list, send an e-mail message to ncsalist@ncsa.uiuc.edu with the appropriate command in the body of the message. Commands in the subject line are NOT processed. Valid commands include:

       subscribe hdf-java [<address>]
       unsubscribe hdf-java [<address>]
       help 
We recommend that you send the "help" command to retrieve the full list of available commands.

If you have any problem subscribing/unsubscribing, feel free to contact hdfhelp@ncsa.uiuc.edu. To unsubscribe, the e-mail address you send must match exactly the e-mail address with which you subscribed. (If you do not specify an address, the address from which you send the e-mail must match your subscription address.)

18) How do I make a bug report?

All bug reports, comments, suggestions and questions should go to hdfhelp@ncsa.uiuc.edu.

Attached below is a bug report template. It is very helpful to us as far as locating and fixing the bug if all the information inquired in the template is supplied by the reporter.

       ------------------  Template for bug report  ------------------------
       To: hdfhelp@ncsa.uiuc.edu
       Subject: [area]: [synopsis]   [replace with actual AREA and SYNOPSIS]

       VERSION:
          HDF4.1 release 1 (Java)

       USER:
              [Name, phone number and address of person reporting the bug.
               (email address if possible)]

       AREA:
              [Area of the HDF source tree affected, e.g., src, util, test, 
                toplevel. If there are bugs in more than one AREA, please use 
                a separate bug report for each AREA. ]

       SYNOPSIS:
              [Brief description of the problem and where it is located]

       MACHINE / OPERATING SYSTEM:
              [e.g. Sparc/SunOS 4.1.3,  HP9000/730-HPUX9.03...]

       COMPILER:
              [e.g. native cc, native ANSI cc, gcc 2.63, MPW, ...]

       DESCRIPTION:
              [Detailed description of problem. ]

       REPEAT BUG BY:
              [What you did to get the error; include test program or session
               transcript if at all possible.  If you include a program, make
               sure it depends only on libraries in the HDF distribution, not
               on any vendor or third-party libraries.  Please be specific;
               if we can't reproduce it, we can't fix it. Tell us exactly what
               we should see when the program is run. ]

       SAMPLE FIX:
              [If available, please send context diffs (diff -c)]

       [PLEASE make your Subject(SYNOPSIS): line as descriptive as possible.]
       [Remove all the explanatory text in brackets before mailing.]
       [Send to hdfhelp@ncsa.uiuc.edu or to:

              NCSA
              HDF group
              605 E. Springfield Ave. 
              Champaign, IL 61820 ]

       ------------------  End of Bug Report Template  ----------------------