Error: Exception in thread "main" java.lang.UnsatisfiedLinkError

Error Message

This error is returned in the terminal window when attempting to initialize a Java application (Author, Designer Administrator, aimsappsrvr, aimsmonitor aimstasker):

Exception in thread "main" java.lang.UnsatisfiedLinkError: exception occurred in JNI_OnLoad at ... (some additional Java class definitions)


There are two possible causes for this error:

· The incorrect Java version is referenced when starting the Java application. Often, additional Java virtual machines are installed on UNIX machines and referenced under /bin. This directory is usually included in the system PATH variable for most user accounts.

· The X Windows libraries have not been loaded or cannot be found.

Solution or Workaround

  1. Make sure $JAVA_HOME references the correct Java Virtual Machine (java.exe) supported for your ArcIMS version. Check the system requirements section of your ArcIMS install guide to confirm the required JRE/JDK version. For example:

    ArcIMS 3.1 supports JRE/JDK 1.3.1.

    JDK 1.3.1 is installed and the java.exe is located under:


    JAVA_HOME should point to:


  2. Include $JAVA_HOME/bin as the first element in the PATH variable after defining JAVA_HOME.
  3. Re-source your user configuration file.
  4. Restart the ArcIMS Java application.
  5. If the error still occurs, determine if an X Windows environment has been installed on your system. Open a Command Prompt window and type:


    If it returns information, an X Windows environment has been installed and configured. These are common locations for xdpyinfo:

    Solaris:  /usr/openwin/bin/xdpyinfo
    HP: /usr/contrib/bin/X11/xdpyinfo
    AIX: /usr/lpp/X11/bin

    If xdpyinfo cannot be found, an X Windows system may need to be installed. Refer to the appropriate system documentation for further details.

  6. If an X Windows system has been installed, and the same error is returned, reference the locations of the X Windows libraries in the LD_LIBRARY_PATH. For example, in most cases Solaris can include /usr/openwin/lib and /usr/dt/lib in the LD_LIBRARY_PATH variable.