Eclipse导出的可运行Jar无法通过java.lang.UnsatisfiedLinkError异常
这是一个著名的问题,有许多类似的问题,但没有解决办法帮助我。所以,请不要把我的问题标记为重复 我用Java开发了一个使用外部DLL的小应用程序。在eclipse中,一切似乎都很正常,但一旦我导出到runnable jar并使用Eclipse导出的可运行Jar无法通过java.lang.UnsatisfiedLinkError异常,java,eclipse,Java,Eclipse,这是一个著名的问题,有许多类似的问题,但没有解决办法帮助我。所以,请不要把我的问题标记为重复 我用Java开发了一个使用外部DLL的小应用程序。在eclipse中,一切似乎都很正常,但一旦我导出到runnable jar并使用java-jar myapplication.jar运行,它就会抛出以下异常: Exception in thread "main" java.lang.UnsatisfiedLinkError: Testing.dal.LoggingAccess.__LoggingAcc
java-jar myapplication.jar
运行,它就会抛出以下异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Testing.dal.LoggingAccess.__LoggingAccess0(Lnet/sf/jni4net/inj/IClrProxy;Ljava/lang/String;)V
at Testing.dal.LoggingAccess.__LoggingAccess0(Native Method)
at Testing.dal.LoggingAccess.<init>(LoggingAccess.java:25)
at Program.listItems(Program.java:32)
at Program.main(Program.java:27)
线程“main”java.lang.UnsatifiedLinkError中出现异常:Testing.dal.LoggingAccess.\uU LoggingAccess0(Lnet/sf/jni4net/inj/IClrProxy;Ljava/lang/String;)V
在测试时.dal.LoggingAccess.\uu LoggingAccess0(本机方法)
at Testing.dal.LoggingAccess.(LoggingAccess.java:25)
在Program.listItems(Program.java:32)
位于Program.main(Program.java:27)
我已经试着做了其他答案中建议的几乎所有事情,但不幸的是,没有什么对我有效。
我试图设置java.library.path
,但不知道是否正确。我不是java开发者,java世界对我来说是全新的。所以我可能做得不对。
如果你能给我一些关于如何解决这个问题的提示,那就太好了。我自己也能解决这个问题 所需的库位于正确的位置,但我必须在java项目中引用它。问题是,我不想像许多文章中建议的那样,随意使用Path(环境变量)或将库复制到system32文件夹。这就是为什么我在main方法的开头添加了
System.Laod(新的java.io.File(“dll路径”).getAbsolutePath())
许多人建议使用不带.dll扩展名的库名,但对我来说,它只适用于.dll。此外,我不仅要加载所需的库,还要加载我的库所依赖的所有库。例如:我的库依赖于EntityFramework.dll
,因此我必须在main方法中包含这一行:
System.load(new java.io.File("path/EntityFramework.dll").getAbsolutePath());
将项目导出到一个可运行的jar文件中并使用语句java-jar exported file.jar从cmd进行测试后,我就能够在控制台中正确地看到输出了。我刚刚发布了这个答案,以防有人遇到这样的错误并寻找解决方案