3

私は現在、JNI を使用して jar ファイル内にあるメソッドを呼び出す Windows デスクトップ アプリケーションに取り組んでいます。

jvm.dll にリンクできるように、アプリケーションをパッケージ化する最善の方法を知る必要があります。JDK の bin ディレクトリ内にあるすべてのバイナリを自分のセットアップ ファイルにパッケージ化する必要があるかどうかわかりません (そうすることが許可されているかどうかわかりません)。

問題は、オンラインで見つかったすべての例が、JDK インストール パスで見つかった jvm.dll に直接リンクしていることです。また、私のアプリケーションは商用アプリケーションであるため、すべてのユーザーがアプリケーションと一緒に JDK をインストールするように頼ったり、頼んだりすることはできません。

そのようなアプリケーションをパッケージ化するための最良の方法を誰かが明確にすることができますか?

よろしく

4

1 に答える 1

2

jvm.dll も、通常の Java ランタイム (bin/client サブディレクトリ) と共にインストールされます。いくつかのレジストリ値を確認することで、そのパスを見つけ、そこからロードして、正しいバージョンがインストールされているかどうかを確認できます。すでに jvm.lib をリンクしている場合は、実行時にロードできるように、jvm.dll を遅延ロード dll のリストに追加する必要があります。

詳細については、別の質問に対する私の最近の回答を参照してください:
https://stackoverflow.com/a/14434203/93652

于 2013-01-21T10:26:32.200 に答える