java可执行jar文件不会双击加载dll,但会运行
我构建了一个可执行的jar文件(test.jar),它依赖于一些jar库和dll
开始时,它会显示一个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
# 1 楼答案
似乎您正在运行的java命令是x86(32位)版本,并且您在windows中与JAR文件关联的javaw是x64。这是一个不匹配的情况,也是其中一个将加载dll,而另一个不会加载dll的原因
如果它在控制台中工作,但双击时不工作,则该库似乎是32位的。对吗
如果是这样,并且您想将double上的windows关联更改为x86版本,则需要遵循以下说明:
http://windowstipoftheday.blogspot.dk/2005/10/setting-jar-file-association.html
注意:说明链接到javaw的x64版本。您需要在“C:\program files(x86)\java”中找到一个