2022/09/11

IKVM (revived) の使い方

前回の記事でIKVMが復活しているというのを書いたけれど、その続き。
具体的な使い方について。

Visual Studio 2022のNuGetから「IKVM」で検索して
簡単にインストールできるまでは良いのだけれど、
そのあと、どうやって .jar (Javaのコンパイル済みファイル)を
.net用のdllに変換するのか、というあたり。

ikvm-revived のGitHubのリポジトリにある
README.md の「Usage」(使い方)にざっくり書いてあるのだけれど
いまいちわかりにくいので簡単に。

NuGetからIKVM(バージョン8.2.0以降、「最新の安定版」と表示されているあたりを選択するのが無難)をインストールしたあと、
VSのソリューションエクスプローラーで
プロジェクトファイルを右クリック > 「プロジェクトファイルの編集」を選択。


XML形式でプロジェクトの設定が記述されたファイルが開くので、
前述のGitHubにあるREADME.mdの「Example」に書いてあるように、

<ItemGroup>
  <IkvmReference Include="変換したいjarファイルのパス" />
</ItemGroup>

と追加する。
だいたいこんな感じになる。

(上の画像は、Apatche Tikaからダウンロードしてきたjarファイル。)

jarファイルの置き場所は多分どこでもいいけど、
プロジェクトのフォルダ内に置いとくのが無難かも。
パスは絶対パスか、もしくはプロジェクトファイル(*.csproj)からの相対パス。

この状態でビルドすると、
出力ディレクトリに、jarから変換されたDLLが生成されるはず。

(Tikaはサイズが58MBもあるので変換に少々時間がかかった・・・)


・・・というような感じで、
.jarファイルから.net用のDLLを生成できる。

上記の変換だけを行うプロジェクトを作っておいて、
そこで変換したDLLを、
実際に使いたいプロジェクトのほうにコピーして使うのがいいのかもしれない。
(そっちにもNuGetでIKVMをインストールする必要があるので忘れずに。)