リアルタイムでハードを扱うのにはJavaは不向き。
GCがあるため、どうしても一定時間以上の遅延を許容する必要がある。
無理にJavaを使おうとすれば、GCが動かないように組むなど、
逆に面倒になる。

組み込みでJavaを使う話はよく聞くけど、たぶん理由は、
- アプリケーションが大きい場合、Cより高級な言語で書いた方がいい。
- ネットワーク関連のクラスライブラリが揃っている。
- 動的にクラスをロードできる。
といったところ。
JavaCardとかかなり小さいものにまで、入れられてるんだけど、
どういう利点があるのかは知らん。

まぁ、実際に使ったことはないんで自信はなし。