Excelsior Logo Home
Company Products Services Resources Contact
Buy   
Download   
Support   
 Forum   
 Blog   
 Sitemap

Protect Eclipse RCP Applications

Excelsior JET is a compliant Java SE 6 implementation (JVM) powered by the Ahead-Of-Time compilation technology.

Excelsior JET enables you to compile your Eclipse RCP application to a native code executable and distribute it without the original class/jar files.

Compilation to native code substantially improves the security and IP protection of Eclipse RCP applications, as the sensitive code and data get protected from reverse engineering, and tampering with the OSGi bundles becomes impossible. It makes all those Java decompilers useless to the malicious programmers and attackers simply because Java classes are not included in the end user installations.

Watch a demo to appreciate the ease-of-use  

Want to give it a try? Download a free trial 

Case studies

    "...When it comes to Eclipse RCP applications, our research indicated that Excelsior JET was really the only solution for code protection. Its ahead-of-time (AOT) compilation of Java bytecode makes the process extremely simple and effective."  | read full story

--Eric Byres, Michael Thomas, Byres Security Inc.

    "...Excelsior JET represents the best (and possibly only available) solution, capable to protect not only Eclipse RCP and OSGi based applications, but also those that rely on the modeling technologies available in the Eclipse platform."  | read full story

--Víctor Roldán Betancort, Open Canarias S.L.

    "...Excelsior JET has revealed to be perfectly working with such a complex RCP application as EasyMonitoring... We highly recommend to use the product for deploying RCP application in a secure and easy way..."  | read full story

--Baptiste Gendron, Global Vision Systems

Sample Applications

The below RCP applications have been compiled to native code using Excelsior JET:

Eclipse Classic 3.5 Galileo (yes, the IDE)
Windows, 226.8 MB
RSSOwl 2.0 M9 (newsfeed reader)
Windows, 15.7 MB

You may also check our Eclipse RCP testsuite that confirms the maturity of the Excelsior technology.

FAQ

How it works?

Excelsior JET implements the Equinox Runtime core at the JVM level, which effectively enables the AOT compilation technology for Eclipse RCP applications. In previous versions of Excelsior JET, RCP applications could be only handled via the JIT compiler that comes with the JET Runtime, just like it is done by the standard JRE. Unfortunately, that approach did not provide any security as the application classes had to be distributed in the original bytecode form.

What are the supported platforms?

Windows and Linux running on x86 (IA-32) or compatible hardware. For more details, refer to System Requirements.

What are the supported Java (micro)versions?

Excelsior JET 7.0 supports Java SE 6 Update 16 and J2SE 5.0 Update 21.

What are the supported versions of the OSGi runtime?

Excelsior JET 7.0 supports the Equinox OSGi runtime, versions 3.1 through 3.5, out-of-the-box.

Versions prior to 3.1 are not supported.

Does it support the dynamic loading of plug-ins that were not pre-compiled?

Yes. The JET Runtime includes a JIT compiler to dynamically load Java class files that were not pre-compiled.

Can I integrate compilation and packaging into my automated build process?

Yes, of course. Using the JET graphical tools, you create two project files. One project is to build the native executable and the other is to package the application, that is, to prepare it for deployment.

Once the projects have been created, you may use the command line interface to the JET tools to enable native compilation and packaging in an automated build process. For more details, see the "Automated builds" section of the JET User's Guide.

Can I compile only certain OSGi bundles to native code and leave the rest intact?

Yes, it is possible. Non-compiled bundles will be handled by the JIT compiler that comes with the JET Runtime. You may configure the compiler using the JET Control Panel, see the "Settings for OSGi bundles" section of the JET User's Guide.

How does the solution compare to Java obfuscators?

In general, bytecode obfuscators have quite a few weak points as compared to native AOT compilers. Specifically for RCP applications, one point is that you may not obfuscate the names of the packages exported from a plug-in. The Eclipse Runtime exploits Java Reflection to wire OSGi bundles so name obfuscation would break things up. There are some workarounds  for the problem that require manually configuring Java obfuscators for RCP applications, and that may be a complicated task.


Subscribe to the Excelsior JET Mailing List Now
Email:
I want to learn more about this list first

Home | Company | Products | Services | Resources | Blog | Contact | Request a Call

Site: Search | Sitemap | Forum | Credits

© 1999-2009 Excelsior LLC. All Rights Reserved.