I want a java desktop application to be encrypted/some mechanism to ensure that it is not reverse engi开发者_运维百科neered.
Any pointers in this regard would be highly appreciated.
Not really. See this for the full details. This has been a long-running problem with Java, about as old as the language itself.
You are looking for "obfuscation". This kind of technique will make any type of reverse engineering a lot harder by "rearranging" the generated bytecode. Sometimes this also comes with a bonus performance increase since the obfuscator can take the time to optimize the bytecode. Take a look at tools such as ProGuard and yGuard.
At a prior company, we used DashO with success. http://www.preemptive.com/products/dasho
Understand, though, that you're opening a can of worms, to some extent. Understanding where the code died from a stack trace will not be simple...the method names and variables are all obfuscated, and so stack traces are meaningless without the mapping file DashO produced for that specific build.
精彩评论