Javaでの再コーディングについては何も言えません。コードベースが何をするかに依存しますが、あなたが Java の経験がある (そして、Delphi は経験していないと思います) と言うなら、それは良い選択肢かもしれません。
Delphi XE2 へのアップグレードについて:
サードパーティのコンポーネントが使用されているかどうかを確認します。
そうでない場合は、わずかな変更で Delphi XE2 にアップグレードできる可能性があります。
はいの場合は、これらのコンポーネントのソース コードが既に利用可能かどうかを確認してください。
そうでない場合、Delphi XE2 にアップグレードするには、これらのコンポーネントの新しいライセンスを購入する必要があります (今回はソース コードを含むライセンスを取得します)。本当に運が悪ければ、これらのコンポーネントを開発した会社は倒産しています。その場合、Delphi 2006 に行き詰まるか、これらのコンポーネントの代替品を探す必要があります。
コンポーネントのソース コードをすでに入手している場合でも、それらを Delphi XE2 にアップグレードするかどうかを確認することをお勧めします。それはあなたの頭痛の種を救うかもしれません。適切に作成されたコンポーネントをアップグレードすることは、経験豊富な Delphi 開発者にとっては問題ではありませんが (私は何年にもわたって何度もそうしてきました)、考えられる落とし穴を知らない人にとっては、ほとんど不可能であることがわかるかもしれません。
Delphi 2006 と XE2 の間の唯一の重大な変更 (実際には Delphi 2007 と Delphi 2009 の間で発生しました) は、Unicode 文字列への切り替えです。既存のコードベースを切り替えることは、最初からどれだけうまく書かれているか、どのように文字列を (ab) 使用しているかに応じて、痛みを伴わないか、腰の本当の痛みになるかもしれません.
あなたがまだ言及していない別のオプションは、Delphi 2007 へのアップグレードである可能性があります。これは基本的に、それ自体が実際のリリースというよりも、Delphi 2006 のバグ修正でした。私の記憶が正しければ、Delphi 2006 パッケージは再コンパイルしなくても Delphi 2007 で動作しました。