我制作了一个 Java Applet,它依赖于一些第三方库以及一个通过 JNI 调用的 DLL。这些显然不会安装在客户端计算机上。有没有办法将这些第三方库和外部 DLL 打包到我的 Applet 的 JAR 中,以便任何安装了基本 Java 的客户端都可以运行它?
1579 次
3 回答
1
我不是该主题的专家,但所有这些问题都有可行的解决方案。他们可能会让您头疼,但有些事情只能通过这种方式完成(我很确定您对 Entrust CSP 的问题就是其中之一)。
您可以从OpenOCES-project查看OpenSign。魔法发生在 org.openoces.opensign.client.applet.bootstrap 中。
我也相信JNLPAppletLauncher解决了同样的问题,但我对 i 没有经验。
于 2010-07-07T18:57:22.120 回答
1
无论如何要打包这些第三方库
在 Eclipse 中,在 Java 项目属性下(右键单击),我可以执行以下操作:
Export... => Export as Runnable JAR
然后我告诉它把我的 jar 依赖打包到那个导出的 JAR 中。导出的 JAR 将其所有依赖项打包到其中。
替代文字 http://www.ubuntu-pics.de/bild/97131/selection_016_mg6IDm.png
于 2010-07-06T17:32:40.243 回答
1
在 Web 应用程序中使用 JNI 会导致胃灼热,尤其是在 Windows 中。
- 您显然无法在 WAR 文件中部署 DLL,并且可能需要部署者事先运行单独的安装程序。
- 您必须确保您
java.library.path
的设置正确,这通常是通过应用程序服务器中的设置完成的,而不是在 WAR 文件中部署的东西。 - 如果您尝试运行该 Web 应用程序的多个实例,JNI 将本机类与库链接的方式将导致类加载器头痛。解决此问题的一种方法是将包含的 JAR 文件移动到共享类加载器(如 Tomcat 的公共文件夹)中,但这有其自身的复杂性。
于 2010-07-06T17:26:06.343 回答