日期:2014-05-18  浏览次数:20780 次

[求达人]关于java、Swing如何调用一个已知的com组件jacob、jni
目前小弟有一个需求,在一个按钮监听中、调用一个别的公司使用.net开发的com组件的方法。
已经注册到 本地的system32中了。

然后我查相关资料。
大概有这么2种方式
jacob。
但是我在开发环境下。jacob可以成功调用该方法。
但是 我将补丁打到服务器上 他老报
java.lang.unsatisfiedlinkerror:createInstanceNative 这个错
然后我上网搜、发现这个问题
主要是以下这么几点的原因
1、jdk不匹配
2、jacob.dll、jacob.jar文件没有放对地方。
3、还有jacob用于B/S系统中 没有想的那么稳定。

所以 我打算使用jni技术 试试看。
能不能脱离服务器的限制?所以来这里 问问各自的大神、谁接触过 jacob或jni的?

我的核心需求很简单 就是 
当我点击一个按钮的时候
他能访问system32下的a.dll(已注册)
命名空间为b的getPass(String userid)的方法 就行

a.dll 、a.dll的命名空间为b的 getPass(string userid)方法
a.dll是用.net开发的com组件

我在看jni的资料的时候 上面老说什么.h文件。我实在看不明白了。
因为 我需要调用的东西。也不是我们开发的 , 是别的公司开发的。
所以 我在想jni 能不能调用这么一个已知的.dll文件中的方法?
getPass(string userid)中的userid参数,是用java传进去的。

谢谢各位了。!


谁有jacob 或 jni的 成功经验 欢迎分享啊。








------解决方案--------------------
EZ JCom  不过是商业的付费,买了的话,能否也分享下(个人意愿),不甚感激?
------解决方案--------------------
.h是jni方式需要的头文件,不过jni方式比较繁琐

jacob出错,和bs,cs关系应该不大,只要不是跨网调用

要不可以试试jna

http://blog.csdn.net/shendl/article/details/3589676