繁体   English   中英

部署具有第三方依赖关系的Java Web Applet

[英]Deploy Java Web Applet with Third Party Dependencies

我制作了一个Java Applet,它依赖于某些第三方库以及通过JNI调用的DLL。 这些显然不会安装在客户端计算机上。 无论如何,我的Applet JAR中是否打包了这些第三方库和外部DLL,以便任何安装了基本Java的客户端都可以运行它?

在Web应用程序中使用JNI是导致胃灼热的秘诀,尤其是在Windows中。

  • 您显然无法在您的WAR文件中部署DLL,并且可能需要事先由部署程序运行单独的安装程序。
  • 您必须确保正确设置了java.library.path ,这通常是通过应用程序服务器中的设置完成的,而不是通过WAR文件中可部署的设置完成的。
  • 如果您尝试运行该Web应用程序的多个实例,则JNI将本机类与库链接的方式将引起类加载器的麻烦。 解决此问题的一种方法是将包含的JAR文件移动到共享的类加载器(例如Tomcat的公共文件夹)中,但这有其自身的复杂性。

反正有打包这些第三方库的东西吗

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

 Export... => Export as Runnable JAR

然后,我告诉它把我的jar依赖关系打包到导出的JAR中。 导出的JAR将打包所有依赖项。

替代文字http://www.ubuntu-pics.de/bild/97131/selection_016_mg6IDm.png

我不是该主题的专家,但是对于所有这些问题都有可行的解决方案。 它们可能使您头疼,但是有些事情只能通过这种方式来完成(我非常确定,Entrust CSP的问题就是其中之一)。

您可以从OpenOCES-project看一下OpenSign 魔术发生在org.openoces.opensign.client.applet.bootstrap中。

我也相信JNLPAppletLauncher可以解决相同的问题,但是我对i没有任何经验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM