我想在java中編譯我的第一個本地程序。編譯好的.c和.h文件但運行java代碼時出現此錯誤。 這裏是我的Java和C源文件在java本地編程中不滿意的鏈接錯誤
Main.java
public class Main{
public native void sayHello();
static{
System.loadLibrary("hello");
}
public static void main(String[] args) {
Main main = new Main();
main.sayHello();
}
}
HELLO.C
#include <jni.h>
#include "stdio.h"
#include "Main.h"
JNIEXPORT void JNICALL Java_Main_sayHello(JNIEnv *env, jobject obj){
printf("Hello World \n");
return;
}
.C文件彙編
C:.../gcc -I "C:\Program Files\Java\jdk1.7.0_79\include" -I "C:\Program Files\Java\jdk1.7.0_79\include\win32" -o hello.dll -shared Hello.c
運行Java文件
C:.../javac Main.java
C:.../java Main
Exception in thread "main" java.lang.UnsatisfiedLinkError: Main.sayHello()V
at Main.sayHello(Native Method)
at Main.main(Main.java:8)
請將您的命令提示符輸出發佈爲文本,而不是圖像。這使得搜索類似的問題變得更容易。 – SaeX
'-o hello.dell'?它應該是'hello.dll'。這是你的問題中的拼寫錯誤還是你真的命名了你的庫'hello.dell'? – SJuan76
對不起這是打字錯誤.edited that..my錯誤..我得到hello.dll文件與運行java文件的問題 – Mohit