关于JAVA JNI的问题

最近需要用NATIVE 根据网上的例子测试无数次都未能实现

原因总是说当用CL命令生成DLL文件时,找不到stdio.h

尝试将C的头文件放入 又有很多找不到文件

索性不所有头文件放入 答案的某个地方出了错

不知道为什么 请大侠说下

java文件
class HelloWorld {
  public native void displayHelloWorld();
  
  static {
  System.loadLibrary("hello");
  }
  
  public static void main(String[] args) {
  new HelloWorld().displayHelloWorld();
  }
}

C实现
#include <"jni.h">
#include "HelloWorld.h"
#include
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{printf("hello");
return;}

用javah编译的头文件
/* DO NOT EDIT THIS FILE - it is machine generated /
#include
/
Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*

  • Class: HelloWorld
  • Method: sayHello
  • Signature: ()V */ JNIEXPORT void JNICALL Java_HelloWorld_sayHello (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

用VC++6.0生成DLL文件
[img]http://www.iteye.com/upload/attachment/68127/fecb432d-328d-3561-ba1e-00f474095b0a.jpg[/img]

请问错在什么地方

出错原因在于,未将VC的Include和Lib包含进编译环境,用cl /h看看帮助。
另外解决方式:直接用JNative这个框架吧![url]http://jnative.free.fr/SPIP-v1-8-3/[/url]

你的vc6dll程序创建的对吗?win32dll???
我没有用C,而是用C++的创建的CPP文件,你换成C++的看看!

命令行编译有很多问题的,还需要配置LIB等等!你的问题应该是在当前路径下用命令行是不是也需要象java的本地库一样需要写出来的(-IC语言库路径等等)~