Last updated 2004-06-28 by Roedy
Green ©1996-2004 Canadian Mind Products
Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
You are here : home : Java Glossary : J words : JET.
JETSee the benchmarks.
How does it work? It needs somebody else's compiler such as Sun's to produce the byte codes, then it converts class files to a native Windows EXE file. Why is it so fast? The professional version is able to determine if methods overriding a particular non-final method are never actually called in a particular application and therefore inline the method or generate direct calls of it. JET will allocate some local objects on the stack. It can eliminate a remarkable amount of code that is not necessary, e.g. redundant checks for null by both caller and callee. Jet does loop versioning, i.e. it creates a special safe version of loop code used when it knows that various exceptions can't possibly happen, e.g. subscripts out of range. This way it can avoid much of the overhead of the Java safety net.
There are now three versions described in their FAQ. The professional version adds JetPerfect the global optimiser and the ability to dynamically load classes that were not known at compile time. It does this with a native windows application, JIT-style, stripped down class file compiler shipped with the application, not an interpreter. You can use class.forName in all three versions if there is a precomplied DLL matching the class name. It further lets you generate EXEs that don't require a JRE installed for non-GUI apps.
It can also work with IBM's SWT GUI. Then you don't need the JRE and can create GUI apps that will fit on a single floppy.
I have been very impressed with the Jet people. They have answered questions both in newsgroups and via email even though I never paid them a cent. They have been responsive both to bug reports and suggestions to improve their website and documentation. Ironically, I have had better support from them than you typically get when you have a paid support contract.
Optimising compilers are notoriously buggy, yet Jet seem to generate flawless code time after time. I have never encountered any wrong code generated.
If you buy the Jet compilers via the buy buttons below, I get a 20% commission.
This helps support this website. It costs you exactly the same. You deal
directly with Excelsior/Jet; it is just I get the referral credit. Payment is not
handled by PayPal, but by regsoft.com
.
RegSoft accept any credit cards and purchase orders and take a 10% cut
themselves.
You can download an evaluation copy then purchase later. The evaluation copy requires that you have Jet and the full JDK installed to run the executables. Other than that, it is fully functional.
You use it much as is it were java.exe. To create an exe file from *.class files you type:
rem compile without a jar jc com/mindprod/mypackage/MyClass rem compile a jar jc MyClass.jar rem or run the total control gui version with launchpad
to convert the class files to an exe file.
Jet now lets you support multiple JVMs at once.
It also comes with an improved JetPack for bundling up self-installing applications. It allows:
When you first install Jet it has to compile the entire JVM. This takes about an hour on modern machines or over twelve hours on clunkers like mine.
Jet has another use. when you compile a jar file it tells you if any dependent classes are missing. This is a lot quicker than running the program and waiting for an exception when you execute the code that needs the missing class.
Sometimes Jet is a little bit behind Sun in supporting the latest JVM. Jet supports the JDK 1.4.2_01 and well as earlier ones.
set JETVMPROP=-Djet.usage.list -Djet.default.classloader:bootstrap jc =project xxx
Where xxx.prj is the name of your project file.
jc =project xxx +perfect
It installs the Jet runtime in yourappdir/JET RT and any private copy of the JRE in yourappdir/JRE. It does not install Jet itself, so that if some other developer is using Jet, there will be duplicate copies of the Jet runtime. You would think this mechanism which does not require the registry for Jet to find its files would be robust, but in practice sometimes it cannot. I still don't understand how it fails.
home |
Canadian Mind Products | |||
| mindprod.com IP:[24.87.56.253] | ||||
| Your IP:[80.134.30.163] | ||||
| You are visitor number 4203. | ||||
| Please send errors, omissions and suggestions | ||||
| to improve this page to Roedy Green. | ||||
| You can get a fresh copy of this page from: | or possibly from your local J: drive mirror: | |||
| http://mindprod.com/jgloss/jet.html | J:\mindprod\jgloss\jet.html | |||