[求助]关于JNI调用DLL的问题,急问

ghostcloud 2008-03-03 12:25:47
平台: Windows xp sp2
JDK: 1.6u3
背景: 做一台自助终端,该终端自带一个凭条打印机(热敏,驱动由厂家提供,libPrint.dll),由于整体项目要求,需要使用B/S结构进行开发,于是方案为使用applet通过JNI调用libNative.dll(自己根据JNI要求开发,VC++ 2008),libNative.dll通过静态引用lib的方式调用打印机驱动libPrint.dll。

情况:无论通过applet还是写控制台应用的方式,均抛出 java.lang.UnsatisfiedLinkError 错误,
applet下:
java.lang.UnsatisfiedLinkError: HotmInterface.OpenPrinter([B[B)I
at HotmInterface.OpenPrinter(Native Method)
at test.OpenPrinter(test.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...(略)

应用程序方式:
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\test\libNative.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.Runtime.load(Unknown Source)
at HotmInterface.<clinit>(HotmInterface.java:7)
at testc.OpenPrinter(testc.java:19)
at testc.main(testc.java:98)

以下是我做过的尝试,请参考:
1、所有的DLL库均复制到 C:\windows\system32 及 应用目录
2、Applet 安全权限已放开

很急很急的问题,请用力讨论啊。谢谢了啊
...全文
495 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
polarman 2008-12-02
可能是找不到java的dll。将%jre_home%/bin加入到path中。
回复
taolei 2008-03-20
可能是缺少libNative.dll依赖的其他dll,(比如libprint.dll)
用VC里面的工具depends可以看到libNative依赖哪些dll
回复
believefym 2008-03-03
试试把vc的dll比如msvcrt.dll之类的考到相应的文件夹下看看
回复
Squall1009 2008-03-03
window环境变量PATH中加入D:\test应该可以解决你的问题,不过当然D:\test下要有libNative.dll
最好把ie关掉再测下
回复
Squall1009 2008-03-03
java.lang.UnsatisfiedLinkError: D:\test\libNative.dll
明显没有找C:\windows\system32下的libNative.dll啊
回复
ghostcloud 2008-03-03
我对灯发誓,所有的lib dll 都在 C:\windows\system32 和应用路径了
我清空了IE的临时文件,现在两种方式都报 Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\test\libNative.dll: Can't find dependent libraries
了。

证明java可以找到libNative.dll,如果不能找到,会报 no libNative.dll in java.library.path

输出 java.library.path 结果如下:
C:\Program Files\Internet Explorer;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS ...(后面略)
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2008-03-03 12:25
社区公告
暂无公告