BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NET/Mono上でJavaを動かす:Jeroens Frijters 氏がIKVM.NETを語る

.NET/Mono上でJavaを動かす:Jeroens Frijters 氏がIKVM.NETを語る

原文(投稿日:2012/05/08)へのリンク

 

 

IKVM.NET (IKVM) は、.NET とMono 用のJVMで、ユーザーはJavaアプリケーションを直接実行できる。 Microsoftの Erik Meijer氏は最近IKVMのクリエーターである Jeroen Frijters氏と席を交えて、プロジェクトの様々な側面について話をした。インタビューはIKVMの内部のことから将来のプロジェクトの目標まで広範囲に及んだ。以下はその主要な部分である。

Frijters氏は2002年にプロジェクトが始まってから、プロジェクトの中心開発者として働いている。インタビューでは、始めに Frijters氏がどのようにIKVMがMonoプロジェクトの一部となっているか、2つのプロジェクトがお互いにパッチを提供し合って、相互に利益のある関係が作られていることを話した。アーキテクチャ的には、IKVMは完全に.NET上にJavaのメモリーモデルを実装している。氏は、Javaのstring interfaceを正しく処理するために、特別な場合のためのコードが必要になるラッパーを避けようとしている。

.NET開発者は、JavaコードがIKVM上で走るなら、そのコード中のカスタムアトリビュートを使うことができる。Javaと.NETの両方のプラットフォームは、もしコードがIKVM上で走るなら、両方の方法でアトリビュートを使うことができる。 なのでJavaコードで.NETカスタムアトリビュートが使えるし、C#クラスやメンバーでJavaアノテーションも使うことができる。

内部的には、IKVMのランタイムやコンパイラーは、主にC#で書かれている。Frijters 氏は公に入手できるJavaコードを取り入れ(それらは様々な箇所で、GNU Classpath、OpenJDKなどから持ってきている)、そしてネイティブなCコードをマネージコードで置き換えている。ユーザーがアプリケーションでネイティブコード使わなければ、IKVMが全くネイティブコードを使っていないので、IKVM上でもJavaアプリケーションは完全にポータブルである。

現時点でIKVMは完全にJava 7をサポートしており、新しい命令invoke dynamic もサポートしている。しかし、氏はより新しい命令のパフォーマンスを向上するためにまだやるべきことが多くあることを認めている。

 

この記事に星をつける

おすすめ度
スタイル

BT