我制作了一个Java Applet,它依赖于某些第三方的libriaries以及通过JNI调用的DLL。这些显然不会安装在客户端计算机上。有没有办法将这些第三方的libriaries和外部DLL打包到我的Applet的JAR中,以便它可以被任何基于Java安装的客户端运行?部署具有第三方依赖关系的Java Web Applet
回答
在web应用程序中使用JNI是胃灼热的秘诀,特别是在Windows中。
- 显然,您不能在WAR文件中部署该DLL,并且可能需要事先由部署人员运行单独的安装程序。
- 您必须确保
java.library.path
已正确设置,这通常是由应用程序服务器中的设置完成的,而不是WAR文件中可部署的。 - 如果您尝试运行该Web应用程序的多个实例,则JNI将该本机类与该库链接的方式将导致类加载器头痛。解决此问题的一种方法是将包含的JAR文件移动到共享类加载器(如Tomcat的公用文件夹)中,但它有其自身的复杂性。
反正是有包装这些第三 方libriaries
在Eclipse中,下的Java项目属性(右键单击),我可以做:
Export... => Export as Runnable JAR
然后我告诉它将我的jar依赖关系打包到那个导出的JAR中。 导出的JAR将包含所有依赖关系。
alt text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6IDm.png
这不会处理支持JNI本机类所需的本机库。 – 2010-07-06 17:42:45
从不这样说,不值得头痛。为了反映这一点,我截断了OP的报价。 – bakkal 2010-07-06 20:18:46
我的话题不是专家,但有对所有这些问题工作方案。他们可能会让你头痛,但有些事情只能通过这种方式来完成(我相信你与Entrust CSP的问题就是其中之一)。
您可以从OpenOCES-project查看OpenSign。神奇的事发生在org.openoces.opensign.client.applet.bootstrap中。
我也相信JNLPAppletLauncher解决了同样的问题,但我没有与我的经验。
- 1. COM部署依赖关系
- 2. 管理内部第三方依赖关系
- 3. AIR需要具有通用iOS库的AIR第三方依赖关系
- 4. 结构图 - 具有依赖关系的安装依赖关系
- 5. MSBuild和Web部署项目外部依赖关系
- 6. 与Maven传递第三方依赖关系
- 7. Maven依赖关系,Tomcat7和部署
- 8. EJB3 bean部署依赖关系
- 9. Applet与Eclipse中的依赖关系
- 10. 解决第三方循环的dll依赖关系?
- 11. 打字稿npm模块中的第三方依赖关系
- 12. 使用为angular.js编写的第三方依赖关系
- 13. 如何替换第三方nuget软件包的依赖关系?
- 14. Liferay Web应用程序部署依赖关系
- 15. 开发和部署过程中的Java依赖关系
- 16. Maven在构建过程中安装第三方依赖关系
- 17. 部署带有依赖关系的Django Opensource应用程序
- 18. java依赖关系分析工具
- 19. 在运行时依赖第三方?
- 20. 在Java中管理部署依赖关系
- 21. 具有依赖关系的Arduino-like Makefile ...?
- 22. Seam - 具有依赖关系的ListSelectMenus
- 23. 具有依赖关系的Sbt任务
- 24. 具有Maven依赖关系的java.lang.NoClassDefFoundError
- 25. Eclipse Web Project依赖关系
- 26. 依赖关系的nuget依赖关系
- 27. 是否有Maven equivilent解决Linux上Cmake的第三方依赖关系?
- 28. 类依赖关系工具
- 29. 签署未签名的相互依赖的第三方库
- 30. PhantomJS外部依赖关系
谢谢,认为它不值得头痛。关闭以找到不同的解决方案。 – 2010-07-06 17:49:28