Jump to content
Excelsior Forums

Dynamic JRE Compilation??

Recommended Posts

Does JET 3.7 or the future 4.0 support dynamically compiling a JRE? What I mean by this, would be compiling into your executable only the parts of the JRE that you are dependent on. To keep the distribution small.

I know Sun doesn't allow this, however they are not the only freely available JRE/JVM.  THere is JC (http://jcvm.sourceforge.net/) and JamVM (http://jamvm.sourceforge.net/) plus Excelsior could write their own, or one based on the GNU Classpath project.

My hold out on purchasing JET is that it doesn't appear to support this. That I am still required to have the JRE installed on the computer that will run the native executable, or use JetPackII that will create an installation package that will install your executable with the JRE.

This still ads over 25mb to your application. When if you are only using a very small portion of the JRE where maybe all you need is 5-7mb of it.

Plus it would be nice if it was just part of your executable or a external library in the same directory.

Please let me know what I am missing about JET, or if I am on track, and maybe Excelsior is on a path that solves these issues.


Share this post

Link to post
Share on other sites

Some types of applications do not require Sun JRE to run in JET 3.7 (1.4 based and without Swing/AWT usage), thus allowing you to prepare a distribution package of a small size (5-7MB are real figures).

JET 4.0 will not require Sun JRE at all, but on the other hand all platform classes will have to be deployed in precompiled form (JET RT components) due to Sun comatibility rules. Nevertheless, if you had to add JRE with your jet-compiled executables in JET3.7, the download size will be reduced greatly in JET4.0: in 2/3 times. You will not get 5-7 MB here for your distibutive, but 12-14 MB for 1.4 and 15-17MB for 5.0 are real figures.

Just now we are deciding to add or not the feature you are asking to JET 4.1:  to not add parts of Java 2 API that your application does not require in pecompiled form but add it in bytecode form to let an application to dynamically compile them when it really needs them. We suspect that it should reduce download size more but we think that we should find a real sample that will get benefits from it, before implementing this feature (just now we see that HelloWorld for 5.0 can be packed to 8-9MB). Finally, We hope that JET 4.5 will consist of this feature anyway (we hope to reach 10 MB package for medium size 5.0 application).

>Plus it would be nice if it was just part of your >executable or a external library in the same directory.

JetPackII allows you create a self-contained directory (your application + other stuff) that can be installed by simply copying even now (see CD-image backend in JetPackII).

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now