“线程中的异常”;“主要”;java.lang.UnsatifiedLinkError 3
嗨,伙计们,我尝试过所有的解决方案,比如 java-Djava.library.path=。演示 将dll路径添加到路径 java-Djava.library.path=c:\JNI\demo.dll demo 但仍然存在上述错误 这是我的java代码“线程中的异常”;“主要”;java.lang.UnsatifiedLinkError 3,java,c,gcc,java-native-interface,Java,C,Gcc,Java Native Interface,嗨,伙计们,我尝试过所有的解决方案,比如 java-Djava.library.path=。演示 将dll路径添加到路径 java-Djava.library.path=c:\JNI\demo.dll demo 但仍然存在上述错误 这是我的java代码 class demo { public native void printline(); public static void main(String[]args) { new demo().printli
class demo
{
public native void printline();
public static void main(String[]args)
{
new demo().printline();
}
}
这是我的c代码
#include<stdio.h>
#include<jni.h>
#include "demo.h"
JNIEXPORT void JNICALL Java_demo_printline(JNIEnv *a, jobject b)
{
printf("Hello wrold!!!");
return;
}
#包括
#包括
#包括“demo.h”
JNIEXPORT void JNICALL Java_demo_打印行(JNIEnv*a,作业对象b)
{
printf(“你好!!!”;
返回;
}
编译和运行的步骤
- 您需要在java代码中加载库
- 您需要在
java.library.path
static
{
System.loadLibrary("demo");
}
应该给你输出
此外,根据使用中的gcc编译器,确保生成的dll文件是x32或x64。您确定使用类似于
printf
的东西是合法的,这会导致很大的副作用(在标准输出缓冲区上写入)。你确定JVM不会消除这种行为吗?