Jump to content
Excelsior Forums

JetPackII runtime DLL inclusion

Recommended Posts

[This is for a JRE-less app produced with JET 3.5 MP3 Pro.]

In the process of migrating my app from JDK 1.3.1_11 to 1.4.2_04 without any code changes, my app now requires 11 runtime DLLs instead of 2 (xkrn and xsrs).  I believe that this is related to my use of JSSE which became bundled in JDK 1.4.

I'd like to know if there's a tool that I can use or a flag that I can set that will help me figure out why my app needs additional DLLs just as JetPackII discovers during trial runs.

For instance, I'd like to find out what classes that I'm using from JSSE that cause xawt.dll to be required.  With that info I can search for workarounds that might allow me to remove the dependencies on those DLLs.  

One example of a workaround in another app using JDK 1.4 was switching from using java.security.SecureRandom to java.util.Random.  This one switch allowed me to get rid of 9 DLLs.  Unfortunately the only way that I was able to do it was though trial and error.  I just deleted the DLLs that weren't need with it earlier under JDK 1.3 and then figured out where my code would die.


Share this post

Link to post
Share on other sites

There is one way, but is not an easy one...

Consider you need to determine which class is loaded from xawt35040.dll. Do the following steps:

1) Save xawt35040.dll in some place and delete it from jet/bin

2) Copy xkrn35040.dll to xawt35040.dll (thus you will have pseudo-xawt35040 without required classes).

3) Run your app. The error message like

Failed to load j2d.exe (unable to find java.awt.event.InputEvent in XAWT36040.DLL)

must appear. It means that class InputEvent was tried to load from XAWT36040.DLL.

4) Don't forget to restore normal xawt36040.dll !

Hope this information would help.

Share this post

Link to post
Share on other sites