Java UnsatisfiedLinkError-本机库-jnidispatch.dll

Java UnsatisfiedLinkError-本机库-jnidispatch.dll,java,tomcat,dll,java-native-interface,waffle,Java,Tomcat,Dll,Java Native Interface,Waffle,我在使用waffle和tomcat 7通过windows身份验证启用登录时遇到问题 一切正常,但每次部署应用程序时,都会出现以下错误: java.lang.UnsatisfiedLinkError: Native Library C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\seedInventory\loader\com\sun\jna\win32-x86\jnid

我在使用waffle和tomcat 7通过windows身份验证启用登录时遇到问题

一切正常,但每次部署应用程序时,都会出现以下错误:

java.lang.UnsatisfiedLinkError: Native Library C:\Program Files    (x86)\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\seedInventory\loader\com\sun\jna\win32-x86\jnidispatch.dll already loaded in another classloader
当我重新启动tomcat时,它又开始工作了。然而,我想成为 能够在不重新启动的情况下部署应用程序

我发现即使在取消部署之后,这个文件jnidispatch.dll仍在使用中,我无法手动删除它


我能做什么呢?

看看ApacheTomcat一节,关于在Tomcat下使用JNI时的类加载器问题。它说:

关于在Tomcat下使用JNI,需要知道的重要一点是,不能将本机库或其JNI接口放在WEB应用程序的WEB-INF/lib或WEB-INF/classes目录下,并且期望能够在不重新启动服务器的情况下重新加载webapp


因此,您的一些库似乎包含一个本机JNIDSpatch.dll库,您应该将其从jar或war中移到Tomcat的lib文件夹中,以便能够重新部署您的应用程序。

谢谢,我将dll移到了Tomcat lib文件夹中,并从我的项目中删除了jna.jar依赖项。这样,我就可以在不重新启动服务器的情况下部署应用程序。