Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Posts posted by dbg

  1. Hello,

    Originally Excelsior JET 12.0 was based on Java 8u121, and the support of Java 8u144 was added in Maintenance Pack 1. It looks like you have this Maintenance Pack installed, so, you have both profiles in your JET installation directory and can choose between them with JETSetup tool.

    Java 8u181 will be supported in the upcoming release of Excelsior JET that will be available this Fall.

  2. 13 hours ago, Roger said:


    I was reviewing options in Jet Control Panel but didn't see anything related. I then went through the options in JetPackII and on the 'Runtime' page I found 'Additional locales and charsets'.  When I expand that list I see 'Japenese Locale' and 'Extended Japanese Charset'.

    What is the difference?  Or am I just suppose to include both?



    Hello Roger,

    You are right, you need to add Japanese locales in JetPackII.

    Please add both 'Japenese Locale' and 'Extended Japanese Charset'. It will solve the problem.


  3. Hello,


    So i have to make seperate dlls but there is lots of java files.

    Excelsior JET allows you to separate a project into several DLLs and one main executable. This feature is known as creating of multi-component applications. You can read about it in Excelsior JET User's Guide here:


    Please also find example that demonstrates this feature in our samples: <JET installation directory>\samples\MultiComponent



     And make it updateable when we change example frame.java kind of things

    For these purpose updatable installation package could be created in JetPackII. You can read about it here:


  4. Hello,

    Looks like your application requires class files for correct work.

    Excelsior JET compiles your application into native code, so, class files are discarded after packaging.

    The common workaround in these cases is to include the required .jar and .class files into the executable "as-is", i.e. these files will be packed into the executable as resources. However it would be possible to retrieve them back.

    Please find more information here:



    Excelsior Support

  5. Hello,

    It is not a good idea to merge rt folders because they contain some platform-dependent files with the same names.

    JetPackII allows you to rename the rt folder, so you can create independent folders rt-windows, rt-linux, rt-osx and place them near your executables.

    However, please note that this feature is not yet supported by maven plugin for Excelsior JET. Please feel free to create an issue about supporting it on our page on GitHub:



    Excelsior Support

  6. I have built my webapp using a Excelsior JET 8 32bit Tomcat project and configured it to use an Adaptive heap size policy.

    My test setup is running Windows server 2012 R2.

    while performing long running height request throughput performance tests, I observed that during some periods of operation my application would have it's response capacity greatly degraded.

    Using a java profiler, I could see that during these periods the JVM was Garbage Collection aggressively and that the heap size was "stuck" at a certain threshold.

    This behavior led me to believe that I might be running out of available physical memory, and that the Excelcior JET's Adaptive policy might be avoiding requesting more heap space from the OS.

    Using task manager I could see that around 1.5GB were still available.

    In Windows Resource monitor I could see that most of these 1.5GB were marked as "Standby" memory and that only about 15MB were marked as free.

    As soon as I ran the System internals RAMMap tool and requested for the "Standby List" to be emptied, the JVM immediately reserved some 500MB additional memory and the GC activity was drastically reduced.

    These experiments lead me to believe that Excelsior only refers to the "Free" component of available physical memory when deciding if more heap space can/should be allocated. Is this interpretation correct?

    I would assume that all the available physical memory would be used as a reference for GC and heap size management.


    To enable using of "standby" memory in JET-compiled executables, you should specify -Djet.gc.sys.cache.care.level property.

    Please run the following commands:

    set JETVMPROP=-Djet.gc.sys.cache.care.level=2

    Please let us know the results.

  7. I had packaged my java based tool with jet excelsior trial version.

    In starting it was working fine but when DB size increased,

    it became very slow, it takes time to process the queries, but same build when I ran using jar's it worked fine.

    Could anyone tell me how to fix these issues?

    Thanks & Regards,

    Awadh Nandan


    First of all, what version of Excelsior JET are you using? (32 or 64 bit and for which platform)?

    Also, can you please run your application with Java system property "-Djet.jit.loud" and reproduce the performance problem a few times?

    To set this property on Windows use JETVMPROP environment variable:

       set JETVMPROP="-Djet.jit.loud"

    Then please send us (java@excelsior-usa.com) generated jet.jit.log files, as well as JET project files for your application (.prj and .jpn).

  8. Hello, just dropping by to check whether, by any chance, support for installation packages has now a set date, or still no ETA.


    Sorry, but there is still no ETA for Excelsior Installer on OS X.

    Please note, that convenient formats for publishing applications on OS X are PKG package (for distribution through App Store) and DMG package (for distribution outside App Store).

    And such installation packages with JET-compiled applications already could be created and published to Apple App Store.

    As far as you can create complete application bundle after compilation with Excelsior JET, it could be properly packed and signed with specific tools provided by Apple.

    Please, check manual pages for tools "pkgbuild" and "productbuild":



  9. Is an app using Excelsior Installer as a back-end (provided it is properly signed) submit-able "as it is" to the Apple Store?


    Unfortunately, Excelsior JET for OS X does not include Excelsior Installer yet.

    However, please note that making installation packages is not a common way of distribution of your application on OS X. Usually applications are converted into OS X application bundles and then packed into archives or disk images (.dmg)

    You can find step-by-step instruction for converting JET-compiled applications into OS X app bundles here:


  10. It seems that in v9.0 the useSystemProxies is true by default

    I have tried setting it to false, but it still uses socks proxy to connect to a socket, and it's failing.

    The code I have is:

    Socket socket = new Socket();

    socket.connect(new InetSocketAddress(host, port), 5000);

    and this connect is using the system proxy. This works ok with jre7 u71, but does not work with JET v9 (I am using update 2).

    I have fixed one program by making the following change. But there is another program, which is using nio, and I can't change it.

    Socket socket = new Socket(Proxy.NO_PROXY);

    socket.connect(new InetSocketAddress(host, port), 5000);

    Please let me know if you need more information. Thanks.


    Unfortunately we didn't managed to reproduce the problem on our side.

    Even if invalid system proxy is set, JET-compiled application successfully establishes socket connection.

    Could you please provide us some additional information about your problem?

    Please send us (java@excelsior-usa.com) small example program where the problem is reproduced and corresponding JET project file (.prj).

    Excelsior Support Team.

  11. Yes. If I open a project in MPS, I get all kinds of build errors (when building it) that I don't get with the same project, when opening it in an MPS that has not been JET-compiled.

    I didn't investigate this further because in addition to giving errors, it appears not be faster, as you predicted.

    Nevertheless, I would be interested to know if I made an error in the JET compilation and that is why it gives me problems or that it's indeed a problem. Maybe you can double check this by reproducing it? Given the settings of JET that are in the first post of this thread, it shouldn't take much time to JET (10-15 minutes). MPS (even the source) is freely downloadable from github (https://www.jetbrains.com/mps/download/#generic for the distribution and https://github.com/JetBrains/MPS/tree/MPS3.1 for the stable source branch). What I tried was opening one of the example projects.

    Also, would there be another way to speed MPS up with JET if you cannot "compile in" the classpath dependencies?


    We have successfully compiled and run MPS with Excelsior JET. After compilation we opened a project from samples, and faced with many "Unresolved reference" errors on standard Java classes. It looks like MPS implements the specific logic for JRE/JDK lookup that differs from the scheme used in Excelsior JET. We would investigate the problem more precisely in the future, however we are currently concentrated on other tasks. Please contact us if this is urgent for you.

    Excelsior Support Team.

  12. Hello,

    No, we are not planning to support this feature.

    >Per my understanding, at this time, only 3rd party setup tools can be used to accomplish this

    You are absolutely right. JetPackII allows to create several directories with your application files.

    After that you should use 3rd party setup tools for creating final installer that will place this directories to the end-user computer.

    You can read more about here:

    Excelsior JET User's Guide, Chapter Deployment automation, Step 5: Selecting a Back-End, Installation into multiple directories.

  13. Hello,

    I am wondering about the following scenario: an executable is obtained using Excelsior 7 (version chosen quite randomly). A minimal (runnable) package would then contain the Runtime along with the exe.

    Assuming that an Excelsior 8 (chosen pseudo-randomly: ver. # intentionally higher) runtime directory would overwrite the Excelsior 7 one in the target folder, and that both runtimes have been defined the same in Jet Control Panel (e.g. TYPICAL, SMART, or CUSTOM w/ exactly the same settings)...would the binary compiled with the older one still be runnable?

    In other words, I am wondering about the backwards compatibility of runtimes with files that have been optimized using older versions.

    What about the other way around, older runtimes supporting binaries compiled using newer optimizers? Same restrictions apply as above, and, more than that, I am assuming that both profiles would be compatible (e.g. not attempting to run code that uses Java 8 features on a Java 7 VM). For example, running an equivalent of Java 6 update 7 should be enough to support files that have been compiled under Java 6 update 43 (IOW micro-updates).


    Executable compiled with one version of Excelsior JET is not compatible with the runtime of another version of Excelsior JET by design.

    However, you can create update package for your users using JetPackII which updates both your application and runtime.

    You can read about that here:

    Excelsior JET User’s Guide, chapter Deployment automation, Updating JET Runtime

  14. Hello,

    This problem can be caused by 64-bit DLL. It can be loaded by 64-bit Oracle JRE but cannot be loaded by executables compiled with Excelsior JET.

    You can check version of used Oracle JRE by running the following command:

    java -version

    Excelsior JET 7.6 produces 32-bit executables that can't load 64-bit DLLs.

    Consider recompiling DLL with 32-bit C compiler.