Energy System Research Unit
Excelsior JET Case Study
By: D. Tang PhD CEng FCIBSE FEI
Director ESRU Consultancy
Energy System Research Unit (ESRU) is a teaching and research support group at University of Strathclyde, in Glasgow, UK. Over the years we have developed a variety of software tools including some Java applications. Issues arising that the Java codes usually start slow and, on top of that, users have to install JRE/J3D. In circumstances, the applications conflicted with different versions of Java. For these reasons we have been looking for solutions aiming at that from the user point of view, first the application should start up like native applications; second it should dispense with the need for the users to install Jre/j3d. Excelsior JET was one of the tools that we have investigated. Based on the experience that we had with JET 3.7, we purchased Excelsior JET 4.0 Standard Edition for both Windows and Linux on academic licence.
The Windows version worked just fine as before, but the Linux version caused some problems. We tried to resolve the problems by searching the Internet. It turned out that the problems had been experienced by many users and solutions had yet to be found. We then turn to Excelsior for help and it became one of the best experiences that will stay in our memory for very long time. Replies from Excelsior staff were prompt, professional, precise and polite and our problems were solved without delay. The applications that we built using Excelsior JET 4.0 achieved their objectives. They start faster and run faster too. So, well done Excelsior, you have created a great product. I am sure that the news will spread and our students will use it in their future career.
To benefit other users (and ourselves) the problems and solution are summarised as follows:
Case: Java/Java3D application runs on J2SE 1.4, 1.5, Java3D 1.3.1, Windows and Linux, tested successful using JET 3.7.
| Problems | Solutions | Effect |
|---|---|---|
| LaunchPad complains 'x class with unresolved import dependencies', mainly associated with java3d. | Manually add java3d jars (at ../jre/lib/ext) to the Classpath Entries. | Most unresolved import dependencies resolved. |
| Application built but failed to run with 'java.lang.UnsatisfiedLinkError' | Define LD_LIBRARY_PATH at runtime, Or Define java.library.path at build time, to the j3d native libraries. | Application runs locally |
| Application runs but depends on pre-installed java3d runtime shared libraries, version and location. | In JetPackII, create folder $(root)/libj3d and place the j3d libraries to it; on page Resources, set the value of java.library.path to $(Root)\libj3d. Or manually package j3d shared libraries into xjre/lib/i386 | Application runs as expected and portable. |