[求助]关于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 安全权限已放开

很急很急的问题,请用力讨论啊。谢谢了啊
...全文
520 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 ...(后面略)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧