It's definitely possible. There's a product called Dasho-Pro that provides obfuscation for your code to prevent (or at least inhibit) decompiling. "When you have eliminated the impossible, whatever remains, however
improbable, must be the truth." ~ Arthur Conan Doyle
It’s been my experience that nothing is guarantee...obfuscating like what idarke said may inhibit other from looking at your code... However if someone REALLY what to look at your source code they will find a way to...be it java or another language...
*** The following is what I found on the web...doing a search on this topic ***
The only way of protecting your code is to obfuscate it. Some IDEs have this facility, but you usually have to pay for it. Instead, when your code is written and tested, change all the variables and methods and class names to mixtures of lower-case 'L's and '1's. This looks like l11l1l1l1l1 which when viewed in moonscapes fonts like courier, i.e. as in a coding environment, it is extremely hard to tell the difference between L and 1. Therefore it is extremely difficult for hackers to translate your code. Even if they can tell the difference between these character, then determining actually what the class if used for is even harder.
An easy way of making decompilation difficult is to use anonymous classes for your event handlers. Most decompilers cannot process these classes perfectly and so the java source code they produce is not 100% perfect. Alternatively, go through your code, and at the end of each line, press delete to make the next line continue on the current one. Therefore, you end up with a one-line source file, which is very tricky to parse, so writing a program to parse it would be almost too time consuming.
There are many techniques to obfuscate your code and prevent other people understanding it, but no matter what lengths you got to, somebody somewhere will be able to decipher it.
As for you other question > Why use java?
Well java like other languages has its up and downs - some plus are:
Reducing the number of buffer-over runs.
More flexibility and extensibility than in other languages
Error-processing system is quite advanced
Cross-Platform options
No pointers!
If you very serious about preventing decompilation, you could encrypt your compiled .class files, and then develop your own classloader that de-codes the .class file prior to passing it to the standard class loader.... I think ;-)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.