Everything posted by dbg
Hello Radu, Excelsior JET does not allow to package executables compiled with different Java versions together. Also note that current version of Excelsior JET supports Java 6 only, Java 5 is not supported.
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"
Excelsior JET provides code protection through ahead-of-time compilation: it takes your jars and classes as input, compiles them to optimized native code, and produces a conventional executable. After compilation, bytecode is no longer needed and it is not included into the resulting executable. The native code is much harder to reverse engineer compared to Java bytecode. To make sure that all your class files are compiled, open your project in JET Control Panel on the page CLASSPATH and check that "Protect" column contains "all classes" for application jar files. You can read more about code protection here