我构建了一个依赖于一些 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
最佳答案
您正在运行的 java 命令似乎是 x86(32 位)版本,而您在 Windows 中与 jarfile 关联的 javaw 是 x64。这是不匹配,也是其中一个会加载 dll 而另一个不会加载的原因。
如果它在控制台中工作但双击时不工作,则该库似乎是 32 位的。这是正确的吗?
如果是这样,并且您想将 double 上的 Windows 关联更改为 x86 版本,则需要按照以下说明进行操作:
http://windowstipoftheday.blogspot.dk/2005/10/setting-jar-file-association.html
注意:说明链接到 javaw 的 x64 版本。您需要在“C:\program files (x86)\java”中找到那个。
关于java - 可执行 jar 文件不会通过双击加载 dll 但它会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165750/