2014-02-15 57 views
1

我有一个“概念验证”作品,跨越到一些不熟悉的领域。我有一些关于J2EE技术​​的经验。我负责将EFTPOS机器连接到Web应用程序。我打算使用小程序与dll交互。 DLL将在客户端运行。从小应用程序访问dll

我需要与Web应用程序中的一个DLL进行交互。请为我提供任何指导,因为我是新手。我尝试从独立的Java程序与dll交互,但无法从Web应用程序连接。任何示例代码都会对我非常有帮助。

回答

0

是的,这是完全可能的一个小程序。我之前“连接”了一个电子签名设备,并且工作得非常好。我们在这里讨论的是什么样的.dll,你需要做以下事情:

1.)为你的dll创建一个java访问层/接口,以便你能够从java调用dll函数。取决于我们在谈论什么类型的dll有几种可能性。基础技术是JNI然而这是相当繁琐的使用,但幸运的是有更多的convienient出路有:

  • 使用JNA(如果它是一个ç DLL)
  • 使用Jacob(如果是一个COM组件
  • 使用bridj(如果它是一个C++ DLL。您可以尝试swig但尚未使用的,所以不能告诉)

2.)将你的dll放入一个jar文件中,并将其与你的applet一起分发。这是如何工作的在jacob项目中提供了一个很好的例子。您可以在jacob-1.17_src.zip\jacob-1.17\samples\com\jacob\samples\applet下的源码包中找到它。该示例描述了访问本机库的JNLP方式,该方式将在java 1.6.0_10版本之上运行。如果由于某种原因必须使用较低的版本,这也是可能的,但稍微有些棘手......

3.)另一方面说明:由于最新的可用java版本(1.7.0_51或1.6.0_71 )由于安全性原因,Java applet的一些规则已被添加或收紧。现在您必须使用官方证书签署您的小程序,并在清单jnlp文件中设置正确的属性/属性。但是这里已经详细讨论过,所以只需要搜索它。我可能会使用一个稍旧版本的开发,如果这是工作,搞清楚如何让它在最新的Java版本工作...

4)关于交互部分也有几种可能性。你的Java Applet可以从它所运行的网站(或者其他方式)调用jscript方法,或者applet直接与你的服务器通信。你把所有的可能性在这一方面...

+0

非常感谢,这将有助于我很多东西需要学习和工作对我的项目。还有一点,如果我使用Javascript或Action类代替Applets,是否会有任何问题 – user3314271

+0

从jscript调用dll是不可能的。 “行动课”是什么意思? 如果你很高兴与你的答案,欢迎接受它 - 这可以帮助其他用户。 (点击帖子左边的复选标记) – Lonzak

+0

我想从一个Servlet调用dll函数。该DLL是基于dotnet的。请提供任何示例代码如何访问dll到[email protected] – user3314271