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

时间:2010-07-06 17:12:58

标签: java applet java-native-interface web-deployment

我创建了一个依赖于某些第三方libriaries的Java Applet以及通过JNI调用的DLL。这些显然不会安装在客户端计算机上。有没有在我的Applet的JAR中打包这些第三方libriaries和外部DLL,以便它可以由任何具有基本Java安装的客户端运行?

3 个答案:

答案 0 :(得分:1)

在Web应用程序中使用JNI会导致胃灼热,特别是在Windows中。

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

答案 1 :(得分:1)

  

无论如何要打包这些第三个   党的图书馆

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

 Export... => Export as Runnable JAR

然后我告诉它将我的jar依赖包装到导出的JAR中。 导出的JAR将包含所有依赖项。

alt text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6IDm.png

答案 2 :(得分:1)

我不是这方面的专家,但是 正在解决所有这些问题。它们可能让你头疼,但有些事情只能通过这种方式完成(而且我很确定你的Entrust CSP问题就是其中之一)。

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

我也相信JNLPAppletLauncher解决了同样的问题,但我没有经验。