0

現在、NSIS を使用して Java アプリケーションのインストーラーを作成しています。私のアプリケーションにはネイティブ ライブラリが必要なので、現在、32 ビット ライブラリと 64 ビット ライブラリの 2 つのインストーラを作成しています。

問題は、必要なライブラリの種類が、OS アーキテクチャではなく JVM に依存することです。当然のことながら、64 ビット Windows のユーザーは、32 ビット JVM を実行している場合でも、64 ビット インストーラをダウンロードすることがよくあります。Web サイトのダウンロード ページに説明を書いても、ユーザーが読んでくれない (または理解してくれない) 可能性が高いため、より良い解決策が必要です。

正しいライブラリをインストールできるように、インストール時に JVM タイプを検出するのに役立つ素敵な NSIS スクリプトを提案できますか。このようにして、単一の Windows インストーラーを提供し、複雑さをユーザーから隠すことができます。

4

1 に答える 1

0

可能であれば、正しいネイティブ ライブラリを条件付きでロードし、1 つのインストーラーを作成するようにアプリケーションを変更することを検討してください。お客様はもっと幸せになります。

(Windowsの場合)のようなもの:(説明用の例のみ - 本番環境には対応していません)

String archDataModel = System.getProperty("sun.arch.data.model");
String libName   = "Java2WinExample";
String libExt    = ".dll";
String libNameFQ = libName+archDataModel+libExt;
System.loadLibrary(libNameFQ);

1 つのインストーラで Java2WinExample32.dll と Java2WinExample64.dll の両方がインストールされ、アプリケーションは JVM の呼び出しに基づいて正しいライブラリをロードします。

于 2013-02-23T01:27:44.887 に答える