1)Can J2ME applications run on a pc? (without the cell phone emulator) and if so what (if anything) do you need to run it?
Yes, they run on a PC. You need to use the emulator but you don't have to use one that looks like a cell phone. With the Sun SDK you can create your own emulator using any image you want.
2)Do you need anything special to run J2ME apps on a PDA? Or is it the same as apps for a cell phone?
You need a
Java Virtual Machine. Many (most?) PDAs do not include a JVM from the factory. You may have to install one. Yes, the same app that runs on your cell phone should run on your PDA if it supports the same profile.
3)Can one app run on all PDA's or does it have to be altered for palm OS vs. Pocket PC etc.
"Write once, run everywhere" is the Java motto. The reality is that you will probably want to customize each version to take advantage of different display sizes or keyboard layouts. You will also find numerous bugs in JVMs that force you to create device specific work-arounds.
4)How do J2ME profiles work?
Devices implement a profile like MIDP 1.0 or MIDP 2.0. Each profile consists of a different set of JVM capabilities and APIs. You need to write your application using the APIs supported by your target JVM's profile.
5)Are the collection classes supported in J2ME?
Basic collection classes from java.util are available such as Stack, Vector, and Hashtable. You also get Enumeration but not Iterator.
6)Are there any XML parsers available for J2ME?
Yes, kXML is an open source project (www.kxml.org) but I highly recommend you avoid trying to do things like XML parsing in a MIDlet.
7)Does J2ME support Applets?
No.
8)Does J2ME have any support for JSP containers?
No.