首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNI unsatisfiedLinkError?

JNI unsatisfiedLinkError?
EN

Stack Overflow用户
提问于 2012-10-03 01:59:57
回答 1查看 1.8K关注 0票数 1

我正在练习JNI,并创建了共享库文件Samplelib.so。我将在其中创建库文件的目录添加到java.library.path,当我运行java文件时,我得到java.lang.UnsatisfiedLinkError。这是我的Sample.java。

代码语言:javascript
复制
import java.util.*;
public class Sample{
public native int intmethod(int n);
public native String stringmethod(String s);
public static void main(String[] args) {
    try{
    //System.setProperty( "java.library.path", "/home/sudhagar/Project" );
    System.load("libSample");
    Sample sample=new Sample();
    int sq=sample.intmethod(2);
    String text=sample.stringmethod("JAVA");
    System.out.println(sq);
    System.out.println(text);
}
catch(UnsatisfiedLinkError e){
    String property = System.getProperty("java.library.path");
    StringTokenizer parser = new StringTokenizer(property, ";");
    while (parser.hasMoreTokens()) {
    System.err.println(parser.nextToken());
    }
}
}
}

我的Sample.c文件,

代码语言:javascript
复制
#include "Sample.h"
#include <string.h>

JNIEXPORT jint  JNICALL Java_Sample_intmethod
(JNIEnv *env, jobject obj, jint n){
    return n*n;
}

JNIEXPORT jstring JNICALL Java_Sample_stringmethod
(JNIEnv *env, jobject obj, jstring n){
    return n;
}   

void main(){}   

我使用了以下命令来创建共享库: gcc -shared -I/.../include -I/.../include/linux -o libSample.so Sample.c

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 02:06:46

使用

代码语言:javascript
复制
  System.loadLibrary("Samplelib");

而不是

代码语言:javascript
复制
System.load("Samplelib");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12695668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档