theoretically every method is breakable
(even developing special hardware)
you can only use methods to make it harder for crackers
following are steps you can take:
1) use code obfuscator
2) native compilation
3) your own JVM
4) dedicated hardware designed for your own native code!