我有一个 java 类,调用本机方法并尝试加载库:
import java.io.UnsupportedEncodingException;
public class Main {
public static native String getMyString(String s);
/**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
// System.out.println("here!");
String s2 = getMyString("string text");
for (Byte b : s2.getBytes("UTF-8")) {
System.out.print(b);
System.out.print(",");
}
}
static {
System.loadLibrary("mylib.so");
}
}
“mylib.so”位于 Main.class 所在的目录中。
当我运行时,java Main
我得到以下异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no mylib.so in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1856)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at Main.<clinit>(Main.java:24)
我应该改变什么才能让这个wark?
我试过设置库完整路径但没有成功