2

いくつかの jar ライブラリと dll に依存する実行可能な jar ファイル (test.jar) を作成しました。

最初に JFileChooser ダイアログが表示され、ユーザーはファイルを選択する必要があります。その後、メソッドを呼び出し、jar/dll ライブラリを使用して選択したファイルを読み取ります。プロセスの最後に出力ダイアログを表示し (JOptionPane を使用)、最後に完了を意味するダイアログを作成します。

netbeans で正常に実行され、JNI の使用に問題はありません。また、バッチ ファイル (test.bat) を作成し、jar ファイルを実行することもできます。大丈夫です。

しかし、実行可能なjarファイルをダブルクリックすると、fileChooserが表示され、ファイルを選択しても何も起こりません。このようにして、最終的なダイアログが表示されます! 私は自分のファイルを次のように置きます:

新しいフォルダ

 test.jar
 test.bat
 lib0.dll
 lib1.dll
 lib

   lib2.jar
   lib3.jar

何が問題ですか?お願い助けて。私の問題は、dll ファイルとそのパスのロードに関連していますか? 私の問題はこれと一致しているようです: https://stackoverflow.com/questions/17811376/dll-files-not-loaded-if-executing-jar-file

4

1 に答える 1

0

実行している Java コマンドは x86 (32 ビット) バージョンであり、Windows の jarfile に関連付けられている javaw は x64 のようです。これは不一致であり、そのうちの 1 つが dll をロードし、もう 1 つがロードしない理由です。

コンソールでは機能するがダブルクリックでは機能しない場合、ライブラリは 32​​ ビットのように見えます。これは正しいです?

その場合、Windows の関連付けを double で x86 バージョンに変更したい場合は、次の手順に従う必要があります。

http://windowstipoftheday.blogspot.dk/2005/10/setting-jar-file-association.html

注: 手順は、javaw の x64 バージョンにリンクしています。「C:\program files (x86)\java」にあるものを見つける必要があります。

于 2013-08-10T20:42:40.937 に答える