weidongjpbr 2009-01-12 13:25
浏览 226
已采纳

关于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]

请问错在什么地方

  • 写回答

3条回答 默认 最新

  • wwwghost 2009-01-12 14:22
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办