ifn' you have the [link|http://www.google.com/search?q=java+decompilers&ie=UTF-8&oe=UTF-8|source code].
Plus, the license checker is typically its own class. You just have to unjar the thing, write a new class with the same name and interface, have it accept anything, return true, whatever. Compile that into a .class file and rejar the mess.
Voila - cracked app.
OK, what about obfuscation I hear you say. What about it? You'll still have source code - recompile and run the thing in the debugger - get to the bit where it asks for a license - interrupt the program, check the stack and you're there. You now know the point in the code where the license is checked. Typically, there will be telling string constants around as well. Even if these are encrypted somehow, there will usually be a nice call to System.exit() to guide you.
If you're going to ship Java, you might as well ship the source.