部署具有第三方依赖项的Java Web小程序

部署具有第三方依赖项的Java Web小程序,java,applet,java-native-interface,web-deployment,Java,Applet,Java Native Interface,Web Deployment,我制作了一个Java小程序,它依赖于一些第三方库以及通过JNI调用的DLL。这些显然不会安装在客户端计算机上。有没有办法将这些第三方库和外部DLL打包到我的Applet的JAR中,这样它就可以由任何安装了基本Java的客户机运行 在web应用程序中使用JNI会让人心痛,尤其是在Windows中 很明显,您无法在WAR文件中部署DLL,并且可能需要部署人员事先运行单独的安装程序 您必须确保您的java.library.path设置正确,这通常是通过应用服务器中的设置来完成的,而不是通过WAR文件

我制作了一个Java小程序,它依赖于一些第三方库以及通过JNI调用的DLL。这些显然不会安装在客户端计算机上。有没有办法将这些第三方库和外部DLL打包到我的Applet的JAR中,这样它就可以由任何安装了基本Java的客户机运行

在web应用程序中使用JNI会让人心痛,尤其是在Windows中

  • 很明显,您无法在WAR文件中部署DLL,并且可能需要部署人员事先运行单独的安装程序
  • 您必须确保您的
    java.library.path
    设置正确,这通常是通过应用服务器中的设置来完成的,而不是通过WAR文件中可部署的内容
  • 如果您试图运行该web应用程序的多个实例,JNI将本机类与库链接的方式将导致类加载器问题。解决这个问题的一种方法是将包含的JAR文件移动到共享类装入器(如Tomcat的公共文件夹)中,但这有其自身的复杂性
有没有办法把这些第三个打包 政党图书馆

在Eclipse中,在Java项目属性(右键单击)下,我可以执行以下操作:

 Export... => Export as Runnable JAR
然后我告诉它将我的jar依赖项打包到导出的jar中。 导出的JAR将包含其所有依赖项


我不是这方面的专家,但所有这些问题都有有效的解决方案。他们可能会让你头疼,但有些事情只能通过这种方式来完成(我很肯定你的委托CSP问题就是其中之一)

你可以从地图上看一看。神奇发生在org.openoces.opensign.client.applet.bootstrap中


我也相信这解决了同样的问题,但我没有I方面的经验。

这不会处理支持JNI本机类所需的本机库。从来没有这样说过,也不值得这么头痛。我删掉了OP的引文,只是为了反映这一点。谢谢,我想这不值得让人头疼。去寻找一个不同的解决方案。