Just saw this thread and here are my 2 cents...
Small Devices programming as of this moment is prety tricky (regardless of any claims whatsoever).Every, prety much, hand held device supports few proprietery standards,hence making it rather difficult to write some code to make it workable universally(its even worse then the browser war we had).
If you want to use Java (J2ME) as your language of choice for writing programs/games for hand held devices,you will need to down load specific sdk from a specific vendor(ie Motorolla, Sony Ericsson, Nokia etc). They allow you to write compliant code for some specific phone models. you can find most help + tutorials at the Java(Sun) Wireless site
As ray mentioned above, Java works in a sand box environment in any hand held device,hence making it very popular amongst the small device vendors, however it may hcange in very near future. Java has added FileSystem api's in the most rescent jsr's for j2me.