如何在基于java的web应用程序中使用.dll

如何在基于java的web应用程序中使用.dll,dll,jakarta-ee,Dll,Jakarta Ee,我有一个基于web的j2ee应用程序。是否有任何方法可以使用其中的.dll文件。是的,您可以像在普通Java应用程序中一样使用/文件。您只需要意识到这是在服务器端运行的,而不是在客户端。如果您的目的是在客户端运行此程序,那么您需要以or的形式为其提供服务。首先,您的应用程序服务器必须能够从其应用程序类加载器加载本机库,以便System#loadLibrary工作;换句话说,它必须实现ClassLoader#findLibrary。否则,您必须使用System#load并以某种方式知道dll的绝对

我有一个基于web的j2ee应用程序。是否有任何方法可以使用其中的.dll文件。

是的,您可以像在普通Java应用程序中一样使用/文件。您只需要意识到这是在服务器端运行的,而不是在客户端。如果您的目的是在客户端运行此程序,那么您需要以or的形式为其提供服务。

首先,您的应用程序服务器必须能够从其应用程序类加载器加载本机库,以便System#loadLibrary工作;换句话说,它必须实现ClassLoader#findLibrary。否则,您必须使用System#load并以某种方式知道dll的绝对路径


其次,在J2EE应用程序中放置本机库将影响重新启动应用程序的能力,因为JNI限制了多个类加载器加载同一本机库的能力。如果在尝试重新启动应用程序之前(由于泄漏或GC不可预测),应用程序第一个实例的应用程序类加载器未被垃圾收集,则应用程序第二个实例在加载本机库失败时可能无法工作。因此,我建议将本机库和使用它们的类放在服务器范围的类加载器中,或者至少放在一个保证永远不会重新加载的类加载器中。

您需要的是一种称为Java本机接口的东西

JNI Basics-1是一篇非常简单的文章,可以指导您完成它。 更深入的“文章”(或更好的书)是JavaTM本机接口程序员指南和规范。 还有一个很好的教程 来自IBMdeveloperWorks:使用JNI进行Java编程(您必须注册,但这是免费的,值得的)