先用java 对函数进行声明 ,用javah 生成 对应的头文件 封装C语言函数包含javah生成的头文件 生成 .so , 在要使用jni调用的java程序中 static { System.loadLibrary("动态链接库名 "); } 在程序中调用声明过的函数就可以了 。 回头写个例子 例子,先写个函数声明文件 EncryptUtil.java public class EncryptUtil { static { System.loadLibrary( "pin" ); } publ...
by lobo767 - Java文档中心 - 2007-04-27 19:19:16 阅读(1521) 回复(0)
我公司的原来的一份源代码(linux下的C,so文件),利用jni技术,调用了本地C写的代码,现在公司有需求要在linux下直接用来运行那份代码,主要为了提高效率,现在碰到了一个问题,就是: 我想把跟JAVA对应的本地C库的代码,如:jniEXPORT jobject jniCALL Java_xxx_xxxx_xxxx_xxxx_xxxx_verify(),直接转给正常的C代码,那就好了,我直接调用对应这个函数的新函数就可以了。请大虾指教!
我公司的原来的一份源代码(linux下的C,so文件),利用jni技术,调用了本地C写的代码,现在公司有需求要在linux下直接用来运行那份代码,主要为了提高效率,现在碰到了一个问题,就是: 我想把跟JAVA对应的本地C库的代码,如:jniEXPORT jobject jniCALL Java_xxx_xxxx_xxxx_xxxx_xxxx_verify(),直接转给正常的C代码,那就好了,我直接调用对应这个函数的新函数就可以了。请大虾指教!
java通过jni调用c/c++的库,要保证库的名称是libXXXX.so才行 另外,如果.java文件前面有package abc;这样的指令,在javah得到头文件的时候必须指定,需要加上包的全路径,编译出来的.h文件中的函数名才是正确的。 java -Djava.library.path=. HelloWorld >cat HelloWorld.java public class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public stat...
我写了一个java的jni调用文件Helloworld.java。如果我加入包命令就调用失败,java.lang.UnsatisfiedLinkError。请各位大虾和版主帮我找找原因: ======================== (1)java文件的内容 public class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public static void main(String[] args) { new HelloWorld().displayHelloWorld(); ...
我参考了core java 2一书本地方法章节上的代码,各个源代码都通过了编译,但是在运行的时候报错: 我认为问题是对C代码进行编译时候的参数路径设置错误,或生成库文件后的存放位置不对,请大家帮忙分析一下,谢谢。 所有的源代码和生成的文件都放在同一个目录/home/jni下,下面是测试环境: 操作系统:SUSE linux 10, c编译器版本:cc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) java编译器版本:java version "1...
我看过很多源码,都是用jni生成头文件,根据头文件编写CPP之后编译成DLL文件,可是我的要求是用已经存在的DLL文件中的函数,请各位帮帮忙。谢谢了,很着急啊 :em16:
各位大侠,jni开发中,调用C动态库,路径设置LD_LIBRARY_PATH不能生效,请问如何处理? 另外,我以前有很多C 的lib静态库,如何调用库中函数,请指教? 平台:HP_UX 11.0,jdk1.4,标准c [ 本帖最后由 wangz 于 2007-7-18 11:14 编辑 ]
本人对java不熟悉, 需要用jni调用第三方C库:-(. 我写了个wrapper调用库编译成.so库, 用jni调用出错, 但是用C程序调用同样代码的.so库就不会出错. 因为第三方库没有源码, 没有支持, 苦于没有解决思路, 请问大家对这个问题有什么建议或对jni调用有什么限制之类的. 不好意思问题比较抽象, 任何帮忙都非常感谢.
本文转自: http://hi.baidu.com/hupoo/blog/item/52b9748db2b37212b21bba1b.html 原文如下: 关键词: jni ICTCLAS java c++ 使用了北京师范大学陈天封装的java调用接口。由于ICTCLAS官方并没有发布DLL文件,但是发布了exe程序,和源码。陈天根据源码重新封装了DLL,并且做了相应的改动。 主要改动如下(copy自陈天): 因为免费版没有DLL提供,所以这个DLL是在分词.exe...
网上我google一天了...测试了n久不成功 手头有个商业a.dll, 现在需要调用该dll. 通过jni给它加壳, 生成一个jni_a.dll和一个整理的jar 在cmd下写个简单测试,,ok,, 但是在tomcat6下,,jsp调用,,,出现错误 错误信息提示jni中的一个函数连接不到。记得好像unlinkeerror什么的,,, 操作系统winxp,,java1.5_11,,,tomcat6 jar文件在tomcat 的lib下,,,dll复制到system32,path指向这两个dll都不成功。 因为工作进度...