如何把java类和JNI调用的DLL打包成jar?

iGarlic 2007-08-01 09:43:57
我的java类是Search.java ,包名为mysearch ,其中通过JNI调用了一个DLL,类和DLL文件都放在pack文件夹下。
编译后的目录结构为e:/pack/mysearch/Search.class

在pack文件夹下面建立一个MANIFEST.MF文件
内容如下:
Main-Class: mysearch.Search 然后回车

在e:\pack下运行
jar cvfm search.jar MANIFEST.MF pack

然后在e:\pack下运行
java -jar search.jar
可以执行,将search.jar拷到其它目录下运行时,说找不到DLL文件,可是我打包的时候已经将DLL打在包里了啊,请高手赐教。
...全文
1731 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bt_wangrm 2011-10-28
  • 打赏
  • 举报
回复
这只能说java垃圾。我看c#调用dll方法名可以和dll中得方法名统一,在java中遇到未知的dll你还必须重新javah生成一个Java_package_classname的东西,根本不能对应。sun倒台,下一个就是Oracle了。转行C++吧。
kickflip 2007-09-30
  • 打赏
  • 举报
回复
我也碰到了
帮你顶一下
iGarlic 2007-08-26
  • 打赏
  • 举报
回复
看来是不行了,这么长时间了,没有得到我想要的答案。
不过大家帮顶的都有分!
再过两天看看,没有答案也结帖!
chinagaici 2007-08-22
  • 打赏
  • 举报
回复
我觉得java查找dll不是从classpath上查找的, 而是从系统的搜索路径上找,搜索路径是进程的工作目录, 当前目录, system32, windows和path指向的目录, 所有, 你的程序运行后应该把dll放到这些目录中的一个就可以找到, 根据是java doc说,

* Loads a code file with the specified filename from the local file
* system as a dynamic library. The filename
* argument must be a complete path name.

* Loads the system library specified by the <code>libname</code>
* argument. The manner in which a library name is mapped to the
* actual system library is system dependent.

但是, 我没有试验
ffb 2007-08-22
  • 打赏
  • 举报
回复
我也碰到这个问题,帮你顶下
pxboy 2007-08-15
  • 打赏
  • 举报
回复
不是不行,是你没做好,我这样做过N多次了
iisbocai 2007-08-14
  • 打赏
  • 举报
回复
不能把DLL打到包中吧。
打到包里容器或jdk就找不到它了。
livan1038 2007-08-14
  • 打赏
  • 举报
回复
沒碰過此類問題,幫樓主頂上去,順便學習
iGarlic 2007-08-14
  • 打赏
  • 举报
回复
To: pxboy(阿土仔)
我试过,不行的。
david2083 2007-08-13
  • 打赏
  • 举报
回复
dll可包不进去
treeroot 2007-08-13
  • 打赏
  • 举报
回复
晕,dll怎么可以打到jar包中?
pxboy 2007-08-13
  • 打赏
  • 举报
回复
把dll文件放到e:\pack目录下,再把e:\pack加到classpth里就可以了
sjjf 2007-08-11
  • 打赏
  • 举报
回复
mark
iGarlic 2007-08-10
  • 打赏
  • 举报
回复
没有人关注?将分数加到100分!
我等!!!
iGarlic 2007-08-02
  • 打赏
  • 举报
回复
继续等待……
iGarlic 2007-08-01
  • 打赏
  • 举报
回复
为什么没有人回复?HELP !!!

23,404

社区成员

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

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