我制作了一个依赖一些第三方图书馆以及通过JNI称为的DLL的Java小程序。这些显然不会安装在客户端计算机上。无论如何,是否可以将这些第三方图书馆和我的Applet Jar中的这些第三方图书馆和外部DLL打包,以便任何具有基本Java安装的客户端可以运行它?

有帮助吗?

解决方案

在Web应用程序中使用JNI是胃灼热的食谱,尤其是在Windows中。

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

其他提示

无论如何是否可以打包这些第三方图书馆

在Eclipse中,在Java Project属性(右键单击)下,我可以做:

 Export... => Export as Runnable JAR

然后,我告诉它将我的罐子依赖性打包到那个导出的罐子中。导出的罐子将把其所有依赖项包装在其中。

Alt Text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6idm.png

我不是这个主题的专家,但是 解决所有这些问题的解决方案。他们可能会让您头痛,但是只能这样做的某些事情(我很确定您对委托CSP的问题就是其中之一)。

你可以看看 打开 来自 openoces-project. 。魔术发生在org.openoces.opensign.client.applet.bootstrap中。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top