
正文
java调用jni代码,java代码调用jar包
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java使用JNI调用VC6.0编写的动态链接库dll,如何移植到linux环境下使用...
直接是不行的! linux里面没有dll。不过看你的需求应该是java调用了其他程序别写的功能,在linux里面肯定可以!Linux也有动态链接库的概念,不过叫Share Object ,你编译一个.so的文件,然后还是使用JNI调用。
关键字 关键字是比较好处理的东西,凡是VC中带两个下划线的关键字,比方__asm都是VC独有的。尽量不使用它们,如果实在无法避免,就用#ifdef 和#endif为LINUX和WINDOWS编写两个版本。
jni 是由Java调用C/C++的动态链接库 (DLL)。所以把.class--.h--dll ,想法是不正确的,同时也违背了Jni的初衷。Dll是由C/C++生成的。以前的一个项目用到了Java调用C/C++的DLL,所以对这个还算熟悉。
第三步:编写C/C++本地代码,生成动态链接库文件 首先在VC0(当然也可以用其他工具)中创建一个dll工程---Win32 Dynamic-Link Library工程。
JAVA中所需要做的工作 在JAVA程序中,首先需要在类中声明所调用的库名称,如下:static { System.loadLibrary(“goodluck”);} 在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。
相关问答
Q1: java调用C代码的JNI工具,使用GetFieldID取得类属性,得不到,报NoSuchFi...
一开始使用JNI时,很容易把对象引用(jobject类型的值)和类引用(jclass类型的值)弄混。对象引用对应的是数组或者java.lang.Object及其子类的对象实例,而类引用对应的是java.lang.Class的实例。
可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
创建jvm装载环境和配置 装载jvm.dll 初始化jvm.dll并挂界到JNIENV(JNI调用接口)实例 调用JNIEnv实例装载并处理class类。
jni 函数用关键字native方法声明。对该类的源文件进行编译使用javac命令,生成相应的.class文件。
Q2: 如何通过JNI在Java中调用C库函数
可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
首先在VC0(当然也可以用其他工具)中创建一个dll工程---Win32 Dynamic-Link Library工程。
要在java中调用c语言的库,需要使用Java提供了JNI。
Q3: Java进阶:Java通过JNI与Delphi交互
不太明白你的意思,是不是在Java里面调用C++写的DLL? 如果那个DLL不是专门为Java调用而编写的话,就需要用JNI再写一个DLL,在那里面调用你原有的DLL。
你可以用delphi来和设备通讯(一般是COM口),用JNI传递结果给java,或者用数据库做中介也可以。
你会用Jnative么?这个很好用 JNI也可以。Active应该是dll文件。要调用 就必须知道Active中的方法的API。然后加载Active这个dll。然后将参数传入到你要用的方法里。然后去执行方法。你去下个Jnative的jar包。很简单的。
java不可以直接使用ocx的,可以通过jni进行二次包装。
用java的jni,java本地接口技术。刚好偶也在找找方面的东西。
关于java调用jni代码和java代码调用jar包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







