views:

120

answers:

3

I'm looking for software's like Excelsior. Which you guys recommend? (or do you recomend Excelsior, at all?)

EDIT: I'm look for a generator of EXE. But I'll need to find an obfuscator later either, would be good if I have both in a single software. The optimization is not the aim.

+2  A: 

I've used Excelsior, a few years back. In my experience it does what it says on the tin. I believe the newer versions are not only certified as Java-compliant (passed the TCK) but also offer downloads that are smaller than the equivalent JRE.

I didn't want any dynamic compilation at runtime (= greater download size), so it was necessary to know in advance all the classes that were used at runtime. This is similar to the problem of using an obfuscator - classes loaded via reflection will not be discovered by static analysis. IIRC, a tool is provided with the compiler that writes to file all the classes loaded at runtime which can then be used to define the classes that are compiled into native code. We made a test plan that executes all features of the app to ensure all classes were loaded.

Would I recommend it? Possibly, it depends upon why you want it. My use case was that I wanted to avoid users having to download a JRE. Now that most installers come with the ability to automate/assist with obtaining a JRE, I see there is less of a need, so we stopped using Excelsior.

mdma
+1  A: 

Not sure what Excelsior is but if its ahead-of-time compiler you want, you have GCJ. But dont expect it "to speed up your applications without any source code changes" (read: http://en.wikipedia.org/wiki/Gcj#Performance)

takoi
+1  A: 

Disclosure: I am the Director of Marketing for Excelsior LLC.

The tags you assigned to your question suggest that you are shopping for a Java-aware installer. If so, and you do not care about things like download size, protection from decompilers, startup time, etc., Excelsior JET (which is the correct name of our product btw) is definitely an overkill. Many alternatives, free and commercial, are listed in my article about converting Java to EXE, specifically in sections on Java launchers and wrappers and Java-aware setup authoring tools.

Dmitry Leskov