Though not free, MSDict is the best dictionary u can ask for: *www.handango.com
I have downloaded some so called free java dictionary but they are meant for crosswords puzzles or anagrams or they need to be connected to the internet to search for meanings.
I would suggest u buy MSDict v2.20. It even has medical, acronymic, business, english phrases, english pro, irregular verbs, synonymous dict., etc.
U can search at *www.symbianware.com for other dicts if available