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 ETLCloud 处理json多层级问题
  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真