回 帖 发 新 帖 刷新版面

主题:java与c混合编程

java文件:
class  jniexample
{
    static{System.loadLibrary("testjni");
     }
     private native void testjni();
     public void test()
    {
         testjni();

     }
     
    public static void main(String[] args) 
    {
         jniexample haha=new jniexample();
         haha.test();
    }
}

c文件:
#include <stdio.h> 
#include <jni.h> 
#include "F:\Jproject\jniexample.h"
JNIEXPORT void JNICALL Java_jniexample_testjni(JNIEnv *, jobject )
{
  printf("hello\n");


如题,已经生成了testjni.dll文件,但最后运行的时候
出现问题:
  exception in thread "main" java.lang.UnsatisfiedLinkError:testjni
  at jniexample.testjni(Native Method)
  at jniexample.test(jniexample.java:8)
  at jniexample.main(jniexample.java:15)

回复列表 (共3个回复)

沙发

执行的时候,注意文件jniexample.class
因为你这里没有使用package,所以把这个.class文件和.dll文件放在同一个目录下试试。

板凳


是在同一个目录

3 楼



    但是包的名字要和目录名一样!如:  声明一个包  package Test 同时 *.class 所在的文件名即目录名也要是 Test ! 注意区分大小写!

我来回复

您尚未登录,请登录后再回复。点此登录或注册