23,404
社区成员
发帖
与我相关
我的任务
分享
package com.lzw.code;
class HelloWorld {
// 1,如果在dos下生成编译当前类 则D:\iFreeWorkSpace\JavaUtil\src>javac
// jni/HelloWorld.java
// 2,如果用命令行来生成.h文件则dos需要在工程目录的src目录下
// 即:此类的上一级目录 D:\iFreeWorkSpace\JavaUtil\src>javah jni.HelloWorld
// 则在src 下会生成jni_HelloWorld.h文件
// 3,实现.c文件
// 4,生成静态库
// 可以在VC6.0里面(记得添加jdk的include目录,否则找不到.jni.h文件)
// 在dos下,当dos在目录src下时:
// cl -Id:\VS60\VC98\INCLUDE -I "c:\Program Files\Java\jdk1.5.0\include"
// -I"c:\Program Files\Java\jdk1.5.0\include\win32" -MD -LD jni_HelloWorld.c
// -Fehello2.dll
// 注意如果路径中有空格则要添加“”括起来否则找不到路径
public native void displayHelloWorld();
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
static {
// 查看路径,可以知道把静态库放在什么位置了,“.”表示当前工程目录,则可以放在JavaUtil工程目录下面
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("hello2");
}
}
/*
#include <jni.h>
#include <stdio.h>
#include "jni_HelloWorld.h"
JNIEXPORT void JNICALL
Java_jni_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello World wo kaoddd!\n");
return;
}
*/