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。这是不匹配的,也是其中一个会加载 dll 而另一个不会加载的原因。

如果它在控制台中工作但在双击时不能工作,则该库似乎是 32 位的。这个对吗?

如果是这样,并且您想将 windows 的 double 关联更改为 x86 版本,则需要按照以下说明进行操作:

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

注意:说明链接到 x64 版本的 javaw。您需要在“C:\program files (x86)\java”中找到那个。

于 2013-08-10T20:42:40.937 回答