「IKVM.NET」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
3行目: 3行目:
 
過去に[[マイクロソフト]]が提供していた[[J Sharp|J#]]のようなJava類似言語ではなく、[[OpenJDK]]をベースとした純粋な[[Java]]の[[仮想マシン]]([[Java VM]])が[[.NET]]の[[仮想マシン]]([[共通言語ランタイム]])上で動作するという。
 
過去に[[マイクロソフト]]が提供していた[[J Sharp|J#]]のようなJava類似言語ではなく、[[OpenJDK]]をベースとした純粋な[[Java]]の[[仮想マシン]]([[Java VM]])が[[.NET]]の[[仮想マシン]]([[共通言語ランタイム]])上で動作するという。
  
また、IKVM.NETにはJavaの[[バイトコード]](classファイルおよびjarファイル)を[[.NET]]の[[マネージコード]](DLLファイル)に変換するバイトコードコンパイラーなどのJavaと.NETの相互運用のためのツールも含んでいる。なお[[プログラミング言語]]としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていない。
+
また、IKVM.NETには[[Java]]の[[バイトコード]](classファイルおよびjarファイル)を[[.NET]]の[[マネージコード]](DLLファイル)に変換する[[コンパイラー]]などのJavaと.NETの相互運用のためのツールも含んでいる。なお[[プログラミング言語]]としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていない。
  
 
そのほかに独自のJavaクラスライブラリなども含まれている。
 
そのほかに独自のJavaクラスライブラリなども含まれている。
22行目: 22行目:
  
 
== 使い方 ==
 
== 使い方 ==
単純な[[Java]]実装として使う場合は、IKVMを展開したディレクトリ内のbinディレクトリにJavaのjavaコマンドに相当するikvm.exeコマンドがいるのでこれを叩くだけである。
+
単純な[[Java]]実装として使う場合は、IKVMを展開したディレクトリ内のbinディレクトリに[[Java]]のjavaコマンドに相当するikvm.exeコマンドがいるのでこれを叩くだけである。
 
<source lang="bash">
 
<source lang="bash">
 
$ cd bin
 
$ cd bin
33行目: 33行目:
 
</source>
 
</source>
  
[[Mono]]で用いる場合はシェルスクリプトによるショートカットを用意しておくと便利。
+
[[Mono]]で用いる場合は[[シェルスクリプト]]による[[ショートカット]]を用意しておくと便利。
 
<source lang="bash">
 
<source lang="bash">
 
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/ikvm-7.0.4335.0/bin/ikvm.exe" "$@"' > /opt/ikvm-7.0.4335.0/bin/ikvm
 
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/ikvm-7.0.4335.0/bin/ikvm.exe" "$@"' > /opt/ikvm-7.0.4335.0/bin/ikvm

2012年4月10日 (火) 04:27時点における版

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クラスライブラリなども含まれている。

メリットとデメリット

.NETJavaの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公式の統合開発環境

参考文献


外部リンク