Jump to content
Excelsior Forums
JairoEog

Remove class names from native EXE

Recommended Posts

Hello,

since my software is not using reflection in any line of the code, would it be possible to delete the class, methods and parameters name from the final JET executable?

Could you add that option in a near future?

Thank you in advance. Hopping a reply.

Share this post


Link to post
Share on other sites

Excelsior JET is a certified Java SE implementation. Due to license restrictions, certified implementation should contain all Java SE APIs including reflection API. Compiler cannot prove that your application never uses reflection API, as in Java a new class can be dynamically loaded at any time and it can use reflection API. So the class and method names should be preserved in the compiled application. Note that parameter names are not included in reflection information and not preserved.

To avoid appearing of class and method names in the executables, Excelsior JET has an option to encrypt such strings. It can be enabled in JET Control Panel on the page TARGET in "EXECUTABLE SETTINGS" panel.

For more information see JET User's Guide, chapter "Intellectual property protection", section "Data protection"

Share this post


Link to post
Share on other sites

Excelsior JET is a certified Java SE implementation. Due to license restrictions, certified implementation should contain all Java SE APIs including reflection API. Compiler cannot prove that your application never uses reflection API, as in Java a new class can be dynamically loaded at any time and it can use reflection API. So the class and method names should be preserved in the compiled application. Note that parameter names are not included in reflection information and not preserved.

To avoid appearing of class and method names in the executables, Excelsior JET has an option to encrypt such strings. It can be enabled in JET Control Panel on the page TARGET in "EXECUTABLE SETTINGS" panel.

For more information see JET User's Guide, chapter "Intellectual property protection", section "Data protection"

Badly i can't afford the cost of a Proffessional/Enterprise license, so i can't use the encrypt option. Anyways thanks for your reply, it cleared almost all my doubts.

Share this post


Link to post
Share on other sites

Badly i can't afford the cost of a Proffessional/Enterprise license, so i can't use the encrypt option. Anyways thanks for your reply, it cleared almost all my doubts.

Did you know that we have a discount program for startups and other small businesses?

In any case, you may use a name obfuscator such as ProGuard for extra protection. Refer to the following Knowledge Base article for details:

HOWTO: Maximize protection of your application against reverse engineering

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×