Java运行环境在类Java运行环境在类
第11章 Java基础类
JDK1.2提供了Java基础类,其中的一部分就是Swing。Swing是构筑在AWT上层的一些组件的集合(为了保证平台独立性,它是用100%的纯Java编写)。本模块介绍了JFC和Swing图形用户界面的实现。
第一节 相关问题
讨论,以下为与本模块内容有关的问题:
* AWT本身是非常有用的,它是一个新的类集合的一部分。这个新的类集合称为Java基础类(JFC),它作为一个整体,将GUI提升到了一个新的水平层次。JFC究竟是什么,特别地,什么是Swing,什么事Sw...
Java运行环境在类
第11章 Java基础类
JDK1.2提供了Java基础类,其中的一部分就是Swing。Swing是构筑在AWT上层的一些组件的集合(为了保证平台独立性,它是用100%的纯Java编写)。本模块介绍了JFC和Swing图形用户界面的实现。
第一节 相关问题
讨论,以下为与本模块内容有关的问题:
* AWT本身是非常有用的,它是一个新的类集合的一部分。这个新的类集合称为Java基础类(JFC),它作为一个整体,将GUI提升到了一个新的水平层次。JFC究竟是什么,特别地,什么是Swing,什么事Swing可以做但AWT不能,
Java运行环境在类被装载时执行定义的static代码块。在上例中,当类NativeHello被装载时,库hello1被装入。
调用本地方法
一旦你已将本地方法放入到一个类中,就可以为该类创建对象以存取这个本地方法,这与处理普通的类方法相似。这里,我们举例说明程序是如何创建一个新的NativeHello对象并调用你的nativeHelloWorld方法的:
1.class UseNative {
2.public static void main (String args[]) {
3.NativeHello nh = new NativeHello();
4.nh.nativeHelloWorld();
5.}
6.}
用javac来编译.java文件。.class文件在创建头文件时会被使用。
javah工具
你可用javah工具来创建基于NativeHello.class文件的C头文件。对javah的调用方式如下:
% javah -jni NativeHello
所产生的文件,NativeHello.h,为你提供了编写C程序所需的消息。这里给出了对于本例javah所产生的文件:
/* DO NOT EDIT THIS FILE - it is machine generated */
1.#include
2./* Header for class NativeHello */
3.
4.#ifndef _Included_NativeHello
5.#define _Included_NativeHello
6.#ifdef __cplusplus
7.extern "C" {
8.#endif
9./*
10.* Class: NativeHello
11.* Method: nativeHelloWorld
12.* Signature: ()V
13.*/
14.JNIEXPORT void JNICALL Java_NativeHello_nativeHelloWorld
15.(JNIEnv *, jobject);
16.
17.#ifdef __cplusplus
18.}
19.#endif
20.#endif
21.
其中的黑体字符部分给出了将要实现的本地方法的签名。
为本地方法编写C函数代码
到此为止,C程序是唯一缺少的代码部分。你所编写的C代码必须包含上面的头文件,以及在,JAVA_HOME/include目录中由JDK所提供的jni.h。(,JAVA_HOME指JDK的"根"目录。)当然,也要包含你的函数所必需的其他头文件。
对每一个在头文件中声明的函数,你都要提供函数体。对本例来说,称为MyNativeHello.c的C文件如下:
#include
1.#include "NativeHello.h"
2.#include
3.
4.void Java_NativeHello_nativeHelloWorld
5.(JNIEnv *env, jobject obj) {
本文档为【Java运行环境在类】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。