「IKVM.NET」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator |
||
1行目: | 1行目: | ||
− | '''IKVM.NET'''とは、[[オープンソース]]により開発が行われている[[Mono]]及び[[.NET Framework]] | + | '''IKVM.NET'''とは、[[オープンソース]]により開発が行われている[[Mono]]及び[[.NET Framework]]上で実装された[[Java仮想マシン]]を含む[[Java]]の実装である。 |
− | 過去に[[マイクロソフト]]が提供していた[[J Sharp|J#]] | + | 過去に[[マイクロソフト]]が提供していた[[J Sharp|J#]]のようなJava類似言語ではなく、[[OpenJDK]]をベースとした純粋な[[Java]]の[[仮想マシン]]([[Java VM]])が[[.NET]]の[[仮想マシン]]([[共通言語ランタイム]])上で動作するという。 |
− | また、IKVM.NETにはJavaの[[バイトコード]](classファイルおよびjarファイル)を. | + | また、IKVM.NETにはJavaの[[バイトコード]](classファイルおよびjarファイル)を[[.NET]]の[[マネージコード]](DLLファイル)に変換するバイトコードコンパイラーなどのJavaと.NETの相互運用のためのツールも含んでいる。なお[[プログラミング言語]]としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていない。 |
そのほかに独自のJavaクラスライブラリなども含まれている。 | そのほかに独自のJavaクラスライブラリなども含まれている。 | ||
11行目: | 11行目: | ||
どの程度の差があるかは調査していないので何とも言えない。 | どの程度の差があるかは調査していないので何とも言えない。 | ||
− | 一方で、[[C Sharp|C#]]や[[F Sharp|F#]]、[[Phalanger]]などと同様に、. | + | 一方で、[[C Sharp|C#]]や[[F Sharp|F#]]、[[Phalanger]]などと同様に、[[.NET]]および[[Java]]の[[ライブラリ]]などを[[プログラミング言語レベル]]で一切意識せずに相互利用できる。 |
== 歴史 == | == 歴史 == |
2012年4月4日 (水) 04:21時点における版
IKVM.NETとは、オープンソースにより開発が行われているMono及び.NET Framework上で実装されたJava仮想マシンを含むJavaの実装である。
過去にマイクロソフトが提供していたJ#のようなJava類似言語ではなく、OpenJDKをベースとした純粋なJavaの仮想マシン(Java VM)が.NETの仮想マシン(共通言語ランタイム)上で動作するという。
また、IKVM.NETにはJavaのバイトコード(classファイルおよびjarファイル)を.NETのマネージコード(DLLファイル)に変換するバイトコードコンパイラーなどのJavaと.NETの相互運用のためのツールも含んでいる。なおプログラミング言語としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていない。
そのほかに独自のJavaクラスライブラリなども含まれている。
メリットとデメリット
.NETとJavaの2重の仮想化が行われるため速度面では不利だと言われている。 どの程度の差があるかは調査していないので何とも言えない。
一方で、C#やF#、Phalangerなどと同様に、.NETおよびJavaのライブラリなどをプログラミング言語レベルで一切意識せずに相互利用できる。
歴史
IKVM.NET 7.0
OpenJDK 7 b147 ベース。
インストール
下記からzipファイルをダウンロードして展開する。
使い方
単純なJava実装として使う場合は、IKVMを展開したディレクトリ内のbinディレクトリにJavaのjavaコマンドに相当するikvm.exeコマンドがいるのでこれを叩くだけである。
$ cd bin
$ mono ikvm.exe
usage: ikvm [-options] <class> [args...]
(to execute a class)
or ikvm -jar [-options] <jarfile> [args...]
(to execute a jar file)
(以下略)
Monoで用いる場合はシェルスクリプトによるショートカットを用意しておくと便利。
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/ikvm-7.0.4335.0/bin/ikvm.exe" "$@"' > /opt/ikvm-7.0.4335.0/bin/ikvm
$ chmod 755 /opt/ikvm-7.0.4335.0/bin/ikvm
関連項目
- Mono - IKVM.NETとの統合が進められている。
- MonoDevelop - IKVM.NET公式の統合開発環境
参考文献