Java ME

Java Platform, Micro Edition, also known as Java ME and J2ME, is an application environment made with low-spec embedded devices (i.e. cell phones) in mind.

Most feature phones since the early 2000s support Java applets in some form or another, but many of them (such as many Qualcomm-based devices) will only allow you to install OTA and won't recognize a .JAR file sent to the device (e.g. on a SD card or by using Bluetooth OPP/OBEX).

Programs for running Java apps
J2ME Loader for Android is an excellent application for loading and running Java applets on an Android device. It is extensive, easy to set up, and supports pretty much any Java ME applet that you throw at it.

Good phones for running Java apps
Anything under this section is based on opinion, but generally the easiest devices to run most Java apps on will be listed here.

Nokia
Any Series 40 Nokia that has file transfer functions (e.g. USB, Bluetooth, SD Card slot) will work for running Java games. You can also run .JAR files directly from the SD card, without having to install them to the gallery.

Symbian Nokia phones also natively support Java applets and will work for running Java games.

(Tested: Nokia 6126, Nokia 6650 fold, Nokia 7376)

Sony Ericsson
A100 Platform and A200 Platform Sony Ericsson devices will automatically install any .JAR file that is sent to it. They are generally compatible with most Java games, but may stagger in terms of performance on heavier games.

(Tested: Sony Ericsson Z520, Sony Ericsson Z750)