IKVM.NETは、オープンソースで開発されている、
.NET FrameworkおよびMono上で動作する
Java実装です。このプロジェクトは、単なる
Java仮想マシンの実装にとどまらず、独自の
Javaクラスライブラリや、JARファイルを.NETのDLLファイルに変換するツールなど、
Javaと.NETの相互運用を円滑にするための様々なツールを提供しています。
IKVM.NETは、
マイクロソフトが過去に提供していたJ#のような
Java類似言語とは異なり、OpenJDKをベースとした純粋な
Java仮想マシンを、.NETの共通言語ランタイム上で動作させることを目指しています。このため、.NET環境で
Javaのライブラリやアプリケーションを直接実行することが可能になります。
このアプローチは、.NET環境内で
Java仮想マシンを動作させるという、二重の仮想化構造を取るため、速度面ではネイティブな
Java実行環境に比べて不利となる側面があります。しかし、.NETプログラマーにとっては、
Javaの豊富なライブラリをプログラミング言語レベルで意識することなく、シームレスに利用できるという大きなメリットがあります。
IKVM.NETが実装する
Java仮想マシンは、OpenJDKをベースとしており、
Java 1.6の仕様に準拠しています。これにより、多くの既存の
Javaアプリケーションやライブラリを.NET環境で利用できます。また、Abstract Window Toolkit (AWT) や
Swingといったグラフィカルユーザーインターフェース(GUI)を構築するためのライブラリも、一部ではありますがサポートされており、
Javaデスクトップアプリケーションの実行も可能です。
関連プロジェクト
IKVM.NETの活用をさらに広げるために、いくつかの関連プロジェクトが存在します。
Ant task for IKVMC: このプロジェクトは、Apache AntをIKVM.NETを通じて.NET環境で利用可能にすることを目指しています。これにより、Java開発で広く利用されているビルドツールを.NETプロジェクトでも活用できるようになります。
A Mono IDE with IKVM: このプロジェクトは、統合開発環境MonoDevelopでIKVM.NETをサポートすることを目指しています。これにより、開発者はMonoDevelop上で
Javaコードのデバッグや実行が可能になり、より効率的な開発が実現します。
jar2ikvmc: これはJavaのJARファイルを.NETのDLLファイルに変換するためのツールです。これにより、Javaライブラリを.NETアプリケーションで直接利用できるようになり、Javaと.NETの相互運用性が向上します。
関連項目
Mono:
クロスプラットフォームの.NET実装。
.NET Framework:
マイクロソフトが開発したソフトウェア開発・実行プラットフォーム。
Java:
オブジェクト指向プログラミング言語。
Javaプラットフォーム:
Javaアプリケーションを実行するための環境。
外部リンク
IKVM.NET:
IKVM.NETの公式サイト(アーカイブ)。