当前位置:  技术问答>java相关

急!!!谁编过 JNI

    来源: 互联网  发布时间:2014-12-29

    本文导语:  JNI里面的两个参数:JNIEnv * 和 jobject 到底如何使用? 究竟大括号里怎么使用 C 语言? 能不能给我举个小例子?---多谢大侠!!! 有无此方面的资料?急!!! | JNI方法可以很容易地访问...

JNI里面的两个参数:JNIEnv * 和 jobject 到底如何使用?
究竟大括号里怎么使用 C 语言?
能不能给我举个小例子?---多谢大侠!!!
有无此方面的资料?急!!!

|
JNI方法可以很容易地访问甚至改变被激活对象的成员域,这是通过使用各种JNI访问方法来实现的,而这些方法则是有变成者通过作为第一个参数的传给每个JNI方法的接口指针。JNI接口指针的类型是JNIENV,第二个参数随本地方法彻底性者不同而不同,对于一个非静态本地方法而言,该参数是一个对象的引用,而对有静态方法而言则是他的JAVA类的引用。通过访问函数来访问JAVA对象成员,保证了本地方法实现了可移植性。
Sample:

public class SayHello {
   public String text = "java joe";
   public int age = 0;
   public native void greet();
   static {
       System.loadLabrary("SayHello.dll");
   }

   public void howOld() {
       System.out.println(test + "is + age + "years old today");
   }

   public static void main(String[] args) {
       SayHello s = new SayHello();
       s.greet();
       s.howOld();
   }
}

#include "SayHello.h"

JNIEXPORT void JNICALL Java_SayHello_greet(JNIEnv * env,jobject this)
{
   jfieldID jf;
   jclass jc;
   jobject jobj;
   jint new_age = 2;
   jc = (*env)->GetObjectClass(env,this);
   jf = (*env)->GetFieldID(env,jc,"text","Ljava/lang/Sring");
   jobj = (*env)->GetObjectField(env,this,jf);
   pal = (*env)->GetStringUTFChars(env,jobj,0);
   printf("Hi%s!Welcome to the netherworld of native methods!n",pal);
   jf = (*env)->GetFieldID(env,jc,"age","1");
   (*env)->SetIntField(env,this,jf,new_age);
}

上面都是从书上抄来的,如果有帮助那就是最好了!

|
也可以做个wrapper, 做一个和java交互的dll, 并且,该dll负责同已有dll通信 :)

|
http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.html

|
为什么不看看the java tutorial呢?
http://java.sun.com/docs/books/tutorial/
里面有关于jni的整整一章,有助理解!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • .net/c#/asp.net iis7站长之家
  • JNI的问题
  • JNI++
  • 关于JNI的中文问题(急急急急急)
  • jni 问题 急急急 分数不够可以再加
  • jni的方法,用java调用c的代码,遇到的问题!
  • javah -jni myclass???在线...
  • 请问如何用jni类来调用一个非java写的外部exe?谢谢!
  • 难道没有人可以告我如何在applet中使用jni方法吗?
  • 听同事说JNI很烂! 很容易出错! 是真的吗? 来着有分!
  • jni的一个小问题--路径问题?
  • 请问JNI是个什么东西?
  • jni难吗?谁有这方面的资料?
  • 哪儿有JNI的资料?
  • 100分求java +VC6.0使用JNI的最简单例子
  • solaris 上编译JNI库的问题
  • JNI 助手类 NativeCall
  • JNI代码生成器 JNIGen
  • JNI编程工具 Janet
  • LevelDB JNI


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3