Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Posts posted by kit

  1. On 30.11.2016 at 1:46 PM, LalitSolanki said:

    Hi friend,

    Please give  more information above step-3 and where is put "step-3 (a)".


    In the begining of the project file created by Excelsior JET Control Panel.



    RCP application bundle create successfully then JET required or not? 

    JET is not required for application to run after compilation and packaging the application with Excelsior JET.

  2. hi,

    Is there any plugin in maven which can perform packaging of complete war application. I was able to compile the application using the GUI but i need to integrate this with maven.

    Hi, we have just released the new version of Maven plugin that supports Tomcat Web Applications -- https://github.com/excelsior-oss/excelsior-jet-maven-plugin#building-tomcat-web-applications .

    Please provide your feedback if it meets your needs

  3. As far as we know, Excelsior JET compiled Java applications work ok on Windows 10 right now.

    Excelsior JET 11.0 was not tested against official JCK (Java compatibility test suite) on Windows 10,

    however Excelsior JET 11.3 is planned to be tested there and Windows 10 will be included to the list of officially supported platforms.

    We are going to release Excelsior JET 11.3 in June.


  4. >>As an additional question, what would roughly be the expected maximum heap size in this system, if I set the heap limit to 'Adaptive'

    4GB for 32-bit Excelsior JET, (a factor of) the installed physical memory for 64-bit Excelsior JET.

    >>When I try to use extreme values like 50m or 5000m I see no difference in the application's memory footprint,

    If you set maximum heap explicitly, Excelsior JET should not use more than you set for Java objects (but can use less of course).

  5. Thank you :D

    You saved me from putting efforts in this.

    A few days after posting on excelsior I was also feeling that this idea is not so good, and java9 modularization would be far more better (which I suppose would trickle down to excelsior in some way)

    Thank again.

    And moreover there is a safe solution that is implemented in Excelsior JET eight years ago -- http://www.excelsiorjet.com/solutions/java-download-size

  6. Hi,

    To make it work, you need to set -pack=none (select "none" option for "pack into exe" column on the Classpath Page) for all jars in the classpath.

    But please note that all JetBrains Java based products use custom classloaders to load their classes.

    Classes that are loaded by custom classloaders are handled by JIT in Excelsior JET, except for specially supported classloaders.

    As JIT compiler is rather modest in Excelsior JET, you should not expect any performance benefits when running MPS with our JIT (I would even expect performance slowdown).

    We support AOT compilation mode only for Eclipse RCP (Equinox OSGi) and Tomcat classloaders out of the box.

    We also have secret support for IntelliJ IDEA classloaders (I believe MPS uses the same classloaders as IDEA as they based on the same IntelliJ platform) but it does not support latest versions of IDEA classloaders.

    Unfortunately, as custom classloaders may evolve, our special classloaders support should always be updated to reflect the changes.

    But as we do not sell IntelliJ RCP Platform solution (due to low demand), we update our support for IDEA classloaders only from time to time.

    We had a hope that JetBrains itself would be interested to publish jet-compiled versions of their products (many our engineers use jet-compiled IDEA for work -- it really works faster), but unfortunately we was not able to negotiate with them regarding this subject so far.

    What is your interest to compile MPS with Excelsior JET? Performance?

  7. Hi,

    It seems that you try to create a file in some folder that requires adminstrator rights (such as "Program Files") and UAC blocks it. Just after installation an application runs as adminstrator (but probably we will change it soon) and this way you are able to write files in restricted folders when it runs as admin. Next time it runs with usual right and is unable to write files in restricted folders. You may specify +runAsAdmin option in your project file to force your application always run as admin (that will always pop up UAC window in exchange) or do not write your files in restricted folders.

  8. I was afraid for that answer. Currently compilation of the complete EXE takes 45 minutes.

    We make use of alot of libraries that are static and almost never change. (iText, JGoodies, ...)

    There is actually one core JAR that changes, is there a way you could only let this JAR recompile.

    I recommend you to employ multi-component model to resolve your problem. You may compile all your third-party jars in one DLL and the core jar into exe. This way recompilation of just an exe will be fast and update will be smaller.

    For more information please read JET User's Guide -- http://www.excelsior-usa.com/doc/jet/jetw013.html#0372

  9. We are currently evaluating Excelsior Jet. but i came across a problem.

    I created a project using Excelsior Jet. I created a Self-Contained folder using JetPackII and, at the end of the ride, I clicked create "Save as Updatable".

    I updated one of the JAR files and replaced the original one. I ran JetPackII again and chose New Project -> Update package

    It noticed the updated JAR and I completed the wizard. This resulted in an new directory with only my new JAR inside.

    What am i supposed to do with this file? I copied it to my Excelsior program folder but he still uses the old version of my classes.

    Other than that, very impressed!

    You have to recompile the executable if you change a jar. And update package should contain updated executable not the jar.

  10. Thank you - this might already help me a lot!

    This is due to the fact that I realized that I'm also able to store a normal zip-archive on the computer. Once it got unzipped by an authorized program the specified main-file is being executed.

    So am I able to tell JET where to search for the required files (assuming i stored them in a sub directory of the zip file)?

    If you choose self-contained directory back-end in JetPackII then the resulting directory is what you need: you may zip it or just copy to the target machine. In this case the required files will be found by the main executable file automatically.

  11. Hello folks!

    I'd like to run a JET compiled application on a computer on which I'm (and the application is) not able to write to the hard disk or install anything. The only permission I've got is to store one file on the system and to execute this file. Since it would be a very long story to explain these conditions I'd appreciate if you just take these facts as given. =)

    So is there a way to kind of statically link the JET VM into the executable? Not in a way that is described in this video but in a way in which the application can be a single file which doesn't need to install anything and doesn't already require an installed Jet VM?

    thanks for your help,


    From technical point of view, our global compilation mode statically links Excelsior JET VM into the executable. However there are still many separate files required to run the executable such as Java SE native libraries (net, awt, etc.) and other resources. And there is no option to statically link those native libraries into the executable. You may try to play with things like this but it will require access to temp folder, that is prohibited anyway as I understand.

  12. Just again: google "pack200".

    I am not particular about what JRE I ship as long as it's works well & is small.

    So, why not to use Excelsior JET then? It is possible to use it with MSI but you have to ship exe. On the other hand as MSI is Microsoft centric, I do not understand why you do not want to ship exe.

  13. I downloaded a trial copy of Excelsior JET and I am impressed with the size reduction achieved. However, it does far more things than what I need.

    This is my scenario

    I ship a JRE(Sun) with my application for Windows Desktop. My application is a jar file.

    My setup MSI is around 30 MB - most of the size is because of the JRE. My jar file is less than 2MB.

    I am looking for this.

    1) MSI size reduction (big time)

    2) I don't want my jar touched at all. i.e. I don't want optimizations in my code.

    3) I am looking for 2 things.

    Check dependencies in my jar.

    Give a stripped down smaller size JRE required to run my application.

    4) I don't want an EXE created

    5) I don't want packaging done - I will do that on my own.

    Is there a way I can do this with Excelsior?

    If you need all 1-5 at once, then the answer is no.

    Excelsior JET is complete JVM with static compilation feature. Java Runtime Slim-Down feature of Excelsior JET is only possible via global analysys of your program to understand what parts of JRE is actually used. And this is done via static compilation of your program into executable.

    However, if you would like to ship Oracle JRE with your application you may look at pack200 utility that comes with Oracle JDK. It may help you reducing the size of your setup in some extent.