Moving from a comfortable use of Java to J2ME should be fairly straightforward. The biggest hurdles are likely to be getting a phone simulator or creating a script, as well as learning how to load and run builds on the phone. But all this is exactly the same as I am sure you will cover the first week in your class. There are also some differences as to what is included in the desktop Java, which is not taken into account in mobile APIs (for example, almost any Java 1.5+ function and some user interface packages, etc.) and a few specific J2ME APIs that you will have use to draw on the screen or respond to keystrokes, but they are all very similar to Java and well documented with Javadoc, so they are not very difficult to learn ... basically it can be compared to a stripped-down version of Java, which extracts functions that not so useful for mobile applications.
J2ME will be a good introduction to the development of mobile devices, in my opinion, even if it is a little more "obsolete" as a platform, if they do not offer a class for the platform that interests you most. I’ll tell you about many types of problems that you still have to worry about, for example, the small size of the form factor / screen size, memory and performance, which makes applications work on several phone models with different capabilities, etc.
The transition from J2ME to the native (non-J2ME) development of BlackBerry did not become a giant leap for me after almost a year of developing J2ME - basically it meant learning different build tools and how you download Blackberry applications on your phone using a different simulator and several different specific ones Blackberry packages for UI stuff - depending on how good the tutorials you can find, it could be a breeze or a little “how XYZ translates to this new platform.”
Android is probably similar to the jump level - you will probably actually find that between J2ME, Blackberry and Android there is quite a bit of code that can be reused, since all three platforms allow you to write Java-based code (for my work in Blackberry and Android versions for projects actually share a bunch of non-ui-related code, setting up dependent projects) ... I think that one of the biggest differences between all three platforms in terms of coding is different libraries for the user interface. .. I mean that they all b they have drawing methods and much more, but each platform has different interfaces and other native packages that you should use, which have some variations in what is and is not available (for example: it is much easier to draw gradients on a blackberry than J2ME) , file system access is slightly different between platforms than the API you should use, etc.
How painful things are about J2ME ... I would say that problems that you cannot debug using a device simulator (for example: a phone call interrupting your application, sound that does not play correctly, etc.) are protected by the API ( if you use a provider such as ATT, it requires you to require a signature in your build), and just try to deal with screens that have tiny resolutions and / or slow processors, the most complex ... nothing so painful, you think would hate yourself for choosing a class for mobile development, and some of these problems may be beyond the scope of your class.
In general, I would say that studying any mobile platform will help you get closer to your desired goal - to study a specific platform that is not offered as a course, and that there are many things that you will learn in a course that will generalize :)
PS ... If in the end you would like to learn Android and have to start with a different handset language, I think that learning J2ME or Blackberry is the platform with the closest match since they are all Java based and have a bit (like you probably use Eclipse as your IDE for all three), compared to Windows Mobile, BREW (based on C ++) or iPhone (Objective-C).
PPS ... sorry to edit again to add this ... but I looked at our company’s internal documents (targeting new developers) on getting the Android build environment to see how crazy it is (it’s not crazy at all) and it actually very similar to what I had to do to set up the Blackberry environment, with the exception of various plugins and SDKs for installation. I think you will find any of these two platforms with only a small leap from what you probably recognize in the J2ME development class.
In fact, to write Android code in Eclipse you have to add a plugin for Android: in Eclipse, add new software to the help menu and add a download site from url https://dl-ssl.google.com/android/eclipse/ ), and after you configure this setting, set the JRE in Eclipse by default for one of the android JREs and not from the JDK (leave this: you may have to install the SDK to get the right JRE that you want (google for "android sdk tools")). The plugin will add some menu options for Android that you will need, for example, "Convert to Android project" ... you might even learn partially through your J2ME course to risk creating your own Android development environment :)