商用であれば何パターンも用意していると思います。
AUは一部Java対応端末がありますが、基本的にBREWのアプリなのでJavaのアプリだけではダメです。
ドコモとソフトバンクについては、まずCLDCという携帯向けJavaの基本中の基本の機能を提供したAPIを共用しています。もしこのCLDCで提供しているクラスだけでアプリを作ったら、理論的にはドコモとソフトバンクの両方で動くアプリが作れるはずです。例えば見栄えの悪いテトリスとかならできるかもしれません。
このCLDCに追加する機能として、ドコモはDOJAという独自のAPIが準備されていますので、それに準拠した書き方をしますが、それにもバージョンがあるので、例えば昔のN503シリーズと最近の端末では実現できる機能に大幅な違いがあります。
ソフトバンクはCLDCの上にMIDPというJavaの標準ライブラリが乗っていて、それがベースになっています。ですので海外向け携帯のアプリ(やはりほとんどがMIDPベース)がそのまま使える可能性があります。ただソフトバンクもCLDCの上のMIDPの上にさらに追加の独自ライブラリを提供しています。
ですので最低でも各キャリアごとに1つずつは用意する必要が出てきます。実際には画面のサイズやメーカーや組み込まれているハードウェアごとの対応拡張機能(例えばGPS付きケータイにはそれが使えるAPIが用意されているなど)、メーカーごとの動作のクセ(ガベージコレクションのタイミングとか、paintメソッドの描画タイミングとか)、あるのでそれらの違いを飲み込むようにプログラムするか、別にソフトを用意するかなどする必要もあります。
お礼
Java初心者なんでこれから勉強したいと思います。 いろいろ調べてくれたみたいで、ありがとうございました。 参考にしたいと思います