but J2ME is designed for mobile devices, so currently different vendors will add their own classes to standard J2ME package. And these classes usually is used to access vendor specific hardware. For example, in motorola java phone, you need to use motorola API to do the voice command programming.
So for J2ME programming, there are two parts. One part is from SUN, it's standard package, you can get the specification from SUN. And this one is common for all vendors. And another part is from hardware vendors, hardware vendors usually will provide document for this portion.
One more information, in order to do J2ME programming, you need to download the device emulators from vendors. some times, the emulators from different vendors are not compatible to each other. So make sure which device you will work on.