Knowledge Base

Notice Information in this article applies to Excelsior JET versions 2.5 through 3.7.

SYMPTOMS

An executable (EXE or DLL) created by Excelsior JET works properly on the system where it was built, but fails to start on systems where JET is not installed with the following message:

    Unable to find/load XKRNxxxyy.DLL (referenced from executable name)

CAUSE

The JET Setup utility precompiles Java 2 platform classes (java.lang.*, java.awt.*, etc.) into a set of runtime DLLs named XKRNxxxyy.DLL, XAWTxxxyy.DLL, etc. and places them in the BIN subdirectory of your JET installation. The JET runtime is placed in XKRNxxxyy.DLL along with the core Java 2 classes that are required by any application, such as java.lang.String.

An application executable built by Excelsior JET in the default mode does not contain Java 2 platform classes, and therefore requires one or more of the JET runtime DLLs with precompiled platform classes.

RESOLUTION

Standard Edition users:
Use the JetPackII utility to create an installation package including your application’s executable, the required JET run-time DLLs, the JRE (optional), and any files that may be required by your application. See the Chapter "Deployment Automation" in Excelsior JET User’s Guide (accessible by selecting the Help button in the JET Control Panel). Professional Edition users:
Use JetPackII as decribed in the above paragraph or compile your application into a single EXE not requiring JET runtime DLLs with the help of JetPerfect Global Optimizer. See the Chapter "JetPerfect Global Optimizer" in Excelsior JET User’s Guide for details. Personal Edition users:
The license of the Personal Edition prohibits deployment, so you may not copy the compiled applications to other systems. Consequently, JetPackII is not included in the Personal Edition.

REFERENCES

  1. Excelsior JET User’s Guide: https://www.excelsior-usa.com/doc/jet/jetw.html

Article ID: 12
Last Revised On: 26-Sep-2005