差分

ナビゲーションに移動 検索に移動

IKVM.NET

233 バイト追加, 2012年12月12日 (水) 04:35
編集の要約なし
'''IKVM.NET'''とは、[[オープンソース]]により開発が行われている[[Mono]]及び[[.NET Framework]]上で実装された[[Java仮想マシン]](Java VM)を含む[[Java]]の実装である。
過去に== 概要 ==IKVM.NETは過去に[[マイクロソフト]]が提供していた[[J Sharp|J#]]のようなJava類似言語ではなく、のような[[Java]]類似言語ではなく、[[OpenJDK]]をベースとした純粋な[[Java]]の[[仮想マシン]]([[Java VM]])が[[.NET]]の[[仮想マシン]]([[共通言語ランタイム]])上で動作するという。)上で動作するというものである。
また、IKVMIKVM.NETにはNETはあくまで実行環境のみであり、[[Java]]の[[バイトコード]](classファイルおよびjarファイル)を[[.NETプログラミング言語]]としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていないため、[[マネージコードプログラム]](DLLファイル)に変換する自体の[[コンパイラー開発]]などのJavaと.NETの相互運用のためのツールも含んでいる。なおにはOracleなどが提供する各種[[プログラミング言語JDK]]としてのJavaコンパイラー(javacコマンド)に相当するものは含まれていない。を用いて行う必要がある。
そのほかに独自のJavaクラスライブラリなども含まれている。なお、IKVM.NETには[[Java]]の[[バイトコード]]([[classファイル]]および[[jarファイル]])を[[.NET]]の[[マネージコード]]([[dllファイル]])に変換するツールは含まれている。そのほかにもIKVM.NET独自のJavaクラスライブラリなども含まれている。
== メリットとデメリット ==
== Javaバイトコードをネイティブコード化に変換する ==
IKVM.NET自体の機能ではないが、IKVM.NETをもちいてNETを用いて[[Javaバイトコード]]を[[マネージドコード]]に変換したのち、[[Mono]]の[[AOTコンパイラ]]をもちいてを用いて[[マネージドコード]]を[[ネイティブコード]]に変換することができる。
なお、[[Mono]]の[[AOTコンパイラ]]で[[コンパイル]]すると、[[プログラム]]起動用の[[マネージドコード]]なexeファイルと、そこから呼ばれるな[[exeファイル]]と、そこから呼ばれる[[ネイティブコード]]で出来た[[ダイナミックリンクライブラリ]](dllファイル)および[[共有ライブラリ]](soファイル)が生成されるので、(soファイル)が生成される。[[プログラム]]の起動には[[Mono]]を必要とするが、このおかげでネイティブコードなのにWindowsとLinuxの切り替えを考える必要がない。を必要とし、そこで実行環境を自動判別することでネイティブコードなのに[[Windows]]と[[Linux]]の切り替えを考える必要がないという構造になっている。
== 歴史 ==
匿名利用者

案内メニュー