Thomson-Blog ( 学习,学习,再学习;努力,努力,再努力。)
在学习的路上不断成长,成功之路就在脚下。

 1.建TestAPI.java  
  public   class   TestAPI  
  {  
       
    public   static   void   testshow(String   msg)  
      {  
          testshow0(msg);  
      }  
      private   static   native   int     testshow0(String   msg);  
   
      static  
      {  
          System.loadLibrary(   "TestAPI"   );  
      }  
        public   static   void   main(   String[]   args   )  
        {  
            testshow("Hello!");  
        }  
  }  
  2.javac   TestAPI.java  
  3.javah   -jni   TestAPI  
  4.建TestAPI.c  
  #include   <windows.h>  
  #include   "TestAPI.h"  
  JNIEXPORT   jint   JNICALL   Java_TestAPI_testshow0  
      (JNIEnv   *env,   jobject   obj,   jstring   s)  
  {  
      const   char*   szStr   =   (*env)->GetStringUTFChars(   env,   s,   0   );  
      MessageBox(NULL,szStr,"TestAPI",MB_OK);  
      (*env)->ReleaseStringUTFChars(   env,   s,   szStr   );  
  }  
  6.cl   -Id:\j2sdk1.4.2_09\include   -Id:\j2sdk1.4.2_09\include\win32   -LD   TestAPI.c   user32.lib  
  7.java   TestAPI  
  你将会看到java调用windwos   API的MessageBox所产生的Hello对话框  
  环境:  
      JDK+VC  
还要看你是在什么平台使用  
  如果是Solaris平台,  
  第6步的语句要改成:  
  cc   -G   -Id:\j2sdk1.4.2_09\include   TestAPI.c   -o   libname.so  
  6,7步间再加一步:  
  setenv   LD_LIBRARY_PATH   libname.so  
   
  如果是win32平台生成.dll库  
  使用:  
  cl   -I   Id:\j2sdk1.4.2_09\include   -IId:\j2sdk1.4.2_09\include\win32   -LD   TestAPI.c   -name.dll   
    
 

如果单纯地完成从居域网内文件的复制,就不用JNI了,RMI就可以解决;如果要获得本地机器的帐号和密码,我想应该读注册表,必须用JNI了

posted on 2008-09-22 13:23  Thomson-Blog  阅读(851)  评论(0)    收藏  举报