Jump to content
Excelsior Forums
Jim333

Unable to locate DLL: XKRN30020.DLL

Recommended Posts

I am trying to get a simple application to run JRE-less. The application source is:

class test

{

   public static void main (String[] args)

   {

       System.out.println ("test");

   }

}

Steps:

1. I compile this with javac.

2. I compile the class file with my eval version of JET-Pro.

3. I package it with JetPack ... chosing "don't use JRE" option and the GUI install.

4. I switch to another machine (Windows 2000) that does not have any JRE installed.

5. I execute my test_jarch.exe. I can change the install location but the "Where would you like to install JET runtime?" is greyed out. I leave the default and press the "install" button.

6. I try launching my "test.exe" application and I get a

"Unable to locate DLL" title / "The dynamic link library  XKRN30020.DLL could not be found in the specified path <path-directories-listed>."

7. I search the entire hard drive for xkrn*.dll. It does not exist.

I actually do not care about getting jetpack to work correctly. I am going to be using my own installer. I can manually copy any x*.dll from your c:\program file\JET\bin directory. When I copy xkrn30020.dll and put it in the path, I get the following error:

JET is not properly installed on your system

If you port JET-compiled executables to another machine,

please use JetPack (see JET User's Guide, "Deployment automation")

The "Deployment automation" does not provide me with enough info. How can I manually setup the jet300.ini file to reflect a JRE-less installation?

Thanks in advance,

Jim

Share this post


Link to post
Share on other sites

Please tell us some information.

What is the size of resulting archive?

What is the exact value of the grayed  "where would you like to install JET runtime?" folder?

Does your target machine contain JET300.ini file? What does it contain?

Please try to create simple run.bat and launch it:

set path=

test_jarch.exe

Did the program install succeed?

In case of your own installation try the following JET300.ini:

# JET Configuration File, ver.1.0

[JET]

JET_Home = "$!"

.

and deploy the .ini and all x***.dll to the folder near the exe. This should work.

Thanks.

Share this post


Link to post
Share on other sites

Thanks for the info, but unfortunately none of it helped. Do you have any more suggestions?

The machine is a clean Windows 2000 ServPack3 with only Norton AntiVirus, a bunch of "Critical Update" patches from Microsoft, and WinZip.

sleep.exe is 7,168 bytes in size.

sleep_jarch.exe is 187,170 bytes in size.

The greyed out "Where would you like to install JET run-time?" value is set to "<no need JET directory>".

There is no jet300.ini on the machine anywhere (searched the whole hard drive).

I tried the simple run.bat idea, but I get the "JET is not properly installed ..." error message shown in my original posting.

The run.bat (and probably other) installs created a uninst.log file that contains:

CREATED     C:\Program Files\sleep\sleep.exe

CREATED     C:\Program Files\sleep\CRTSR314.exe

While the log file indicates that CRTSR314.exe was created, it is not in the C:\Program Files\sleep directory (or anywhere else on the hard drive). Only sleep.exe and uninst.log are on the drive.


Taking a different angle, I tried manually copying the sleep.exe, x*.dll, and jet300.ini to a single directory and ran it. I get the "JET is not properly installed ..." error message. This is both with the path set as normal and with an empty path, "set path=".

The following lists all of the files in the single directory. This is really a copy of x*.dll from the JET bin directory ... adding sleep.exe and jet300.ini:

jet300.ini

sleep.exe

xawt30020.dll

xcrb30020.dll

xds25.dll

xd_ditls.dll

xd_edif.dll

xd_nb04.dll

xd_nb09.dll

xd_utl.dll

ximg30020.dll

xjce30020.dll

xjit300.dll

xkrn30020.dll

xl5030020.dll

xl5130020.dll

xl5230020.dll

xl5330020.dll

xl5430020.dll

xl5530020.dll

xl5630020.dll

xl5730020.dll

xlCH30020.dll

xlDB30020.dll

xlink300.dll

xlJA30020.dll

xlKO30020.dll

xlTH30020.dll

xlxt30020.dll

xmia30020.dll

xmis30020.dll

xprofapi.dll

xrmi30020.dll

xsec30020.dll

xsnd30020.dll

xsql30020.dll

xsrs30020.dll

xsse30020.dll

xswn30020.dll

xxml30020.dll

xz_113.dll

Where jet300.ini contains:

# JET Configuration File, ver.1.0

[JET]

JET_Home = "$!"

.

Thanks in advance for any further help.

Jim

Share this post


Link to post
Share on other sites

To Jim:

Please add one more line to [JET] section of JET300.ini:

JRE_1.4.1_01_Home = ""

This will solve your problems with manually deployed JRE-less application.

Conserning the size of sleep_jarch.exe: it seems that you came across the bug in JetPack - it didn't include the runtime DLLs into the package for some reason.

Thanks.

To littlefish:

JRE-less application is just the program that does not require JRE to work. It could be either compiled in JetPerfect or default mode.

Share this post


Link to post
Share on other sites

Unforunately, I am still getting the "JET is not properly installed on your system" error message. This is with the entire c:\program files\jet\bin directory copied to the JRE-less machine. I tried two different jet300.ini settings:

# JET Configuration File, ver.1.0

[JET]

JRE_1.4.1_01_Home = ""

JET_Home = "$!"

.

-----

and

-----

# JET Configuration File, ver.1.0

[JET]

JRE_1.4.1_01_Home = ""

JET_Home = "c:\temp\test"

.

-----

Note that "c:\temp\test" is where test.exe was installed with a copy of the \program files\jet\bin files.

Both jet300.ini yield the "JET is not properly installed" message.

Has anyone got a simple "Hello World" type of application to work JRE-less (a.k.a. no JRE on the system anywhere)? This seems so simple. Yet it just is not working.

Any suggestions?

Share this post


Link to post
Share on other sites

Make sure sleep.exe works on your JET-machine.

Make sure ALL files (including sleep.exe, x*30020.dll, JET300.ini) are copied to the same directory on target machine. ?The JET300.ini should look like your first variant from the last post (with "$!").

This MUST work.

Please send the sleep.exe to java@excelsior-usa.com, we'll take a look at it.

Thanks.

Share this post


Link to post
Share on other sites

Thank for the thoughts...

I am using a trial ware version of Excelior-JET Professional. This is the comerical version. I am not planning on purchasing the product if it does not meet my needs ... which is why I am do the evaluation on the version that I would purchase.

Share this post


Link to post
Share on other sites
:huh: I have the same problem.  Using Jet-personal edition, I create an EXE file, sun correctly on the same machine.  However, it do not run on other machine without JET installed.  If I need to install JET on other machine when I move my application there, why I don't just install JVM intead?  funny?

Share this post


Link to post
Share on other sites

The Personal Edition has several limitations in comparison with other Editions. In particular, it does not support deployment of compiled applications. If you intend to evaluate Excelsior JET for possible commercial usage, we recommend you to download the Evaluation Package, which has all features of the Professional Edition fully enabled, but expires in 60 days.

Share this post


Link to post
Share on other sites

I had the same problem.  Is there a download of an executable created with Jet that I could test on a clean Windows 98 machine?

Share this post


Link to post
Share on other sites

×