奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

JAVA認證

JAVA認證基礎知識:JavaNativeInterface學習小結

時間:2024-08-30 23:27:29 JAVA認證 我要投稿
  • 相關推薦

JAVA認證基礎知識:JavaNativeInterface學習小結

  JNI是Java Native Interface的縮寫,中文為JAVA本地調用。使用JNI可以很方便的用我們的Java程序調用C/C++程序。很多時候,某些功能用Java無法實現,比如說涉及到底層驅動的一些功能,這時候我們就可以利用JNI來調用C或者C++程序來實現,這就是JNI的強大之處。但是JNI也有它的缺點,使用java與本地已編譯的代碼交互,通常會喪失平臺可移植性。

JAVA認證基礎知識:JavaNativeInterface學習小結

  下面是一個JNI例子,調用C++輸出"hello world":

  第一步:創建Java類,在里面定義一個本地方法(用native關鍵字修飾的方法)

  public native void sayHello();

  第二步:使用javah命令(javah 類的全路徑)生成本地方法的C++頭文件

  在DOS窗口中進入工程所在目錄,然后執行javah com.test.TestNative命令,執行完之后就會在當前目錄生成一個后綴名為。h的頭文件,如com_test_TestNative.h,這個頭文件是根據包名和類名來命名的。

  1 /* DO NOT EDIT THIS FILE - it is machine generated */

  2 #include

  3 /* Header for class com_test_TestNative */

  4

  5 #ifndef _Included_com_test_TestNative

  6 #define _Included_com_test_TestNative

  7 #ifdef __cplusplus

  8 extern "C" {

  9 #endif

  10 /*

  11 * Class: com_test_TestNative

  12 * Method: sayHello

  13 * Signature: ()V

  14 */

  15 JNIEXPORT void JNICALL Java_com_test_TestNative_sayHello

  16 (JNIEnv *, jobject);

  17

  18 #ifdef __cplusplus

  19 }

  20 #endif

  21 #endif

  15、16行是對TestNative類中的本地方法sayHello()的聲明。這個h文件相當于我們在java里面的接口,這里聲明了一個 Java_com_test_TestNative_sayHello (JNIEnv *, jobject);方法,然后在我們的本地方法里面實現這個方法,也就是說我們在編寫C/C++程序的時候所使用的方法名必須和這里的一致。

  第三步:編寫C/C++本地代碼,生成動態鏈接庫文件

  首先在VC6.0(當然也可以用其他工具)中創建一個dll工程---Win32 Dynamic-Link Library工程。然后將上面生成的頭文件com_test_TestNative.h添加到該工程中,然后創建一個源文件引用該頭文件并且實現頭文件中本地函數的功能:

  1 #include

  2 #include"com_test_TestNative.h"

  3

  4 JNIEXPORT void JNICALL Java_com_test_TestNative_sayHello(JNIEnv *env, jobject obj)

  5 {

  6 cout《"hello world!"《endl;

  7 }

  這里因為com_test_TestNative.h中引入了jni.h所以要將jni.h加入到VC6.0安裝目錄下的Include目錄中。jni.h在JDK安裝目錄下的include中,同時得件include/win32中的兩個頭文件jawt_md.h、jni_md.h也導入到 VC6.0中。

  將所依賴的頭文件導入之后,我們就可以構建該工程了,按F7就行了,完了會在工程目錄中的Degug目錄下生成一個動態鏈接庫文件,我這里生成的是NativeCode.dll.我們就可以將該dll文件拷貝到環境變量path所包含的目錄下給咱們的Java程序調用了,為了方便,我們也可以將 dll所在的工程目錄加入到環境變量path中去,這樣可以避免每次都要拷貝的麻煩。注意修改環境變量之后要重啟myeclipse.

  第四步:Java調用本地函數

  1 package com.test;

  2

  3 public class TestNative {

  4 public native void sayHello();

  5

  6 /**

  7 * @param args

  8 */

  9 public static void main(String[] args) {

  10 System.loadLibrary("NativeCode");

  11 TestNative tNative = new TestNative();

  12 tNative.sayHello();

  13 }

  14 }

  第10行是加載動態鏈接庫,JVM只需要加載一次就可以調用了,"NativeCode"是上面生成的動態鏈接庫的名字,不含后綴名。

  運行該程序,成功打印輸出了"hello world".

【JAVA認證基礎知識:JavaNativeInterface學習小結】相關文章:

JAVA認證基礎知識:基于反射機制的服務代理調用07-18

Sun java認證考試答案10-23

java認證考試培訓內容08-21

JAVA考試認證經驗分享09-20

java的輸入語句小結10-14

sun認證java程序員08-05

sun認證java基礎模擬試題09-16

Java認證經典面試題目09-23

Java認證考試的目的是什么09-19

sun認證java程序員須知Java日志框架09-05

主站蜘蛛池模板: 卢氏县| 望城县| 泽库县| 乐昌市| 东丽区| 安丘市| 天全县| 汝州市| 新干县| 乌兰察布市| 青田县| 丰台区| 日土县| 桐柏县| 伊宁县| 广饶县| 新河县| 武隆县| 平陆县| 麻城市| 沙田区| 高州市| 灵丘县| 博兴县| 永寿县| 永康市| 遵义县| 沁源县| 榆社县| 曲沃县| 锦州市| 邹平县| 遂川县| 宁化县| 余庆县| 全州县| 聂拉木县| 体育| 铁岭市| 衡水市| 盘山县|