我有一个 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)
我应该改变什么才能让它起作用?
我尝试设置库完整路径但没有成功
请执行下列操作:
- 使用 System.loadLibrary("mylib");
- 将 mylib.so 复制到 libmylib.so
- 运行 java -Djava.library.path=/root/ Main
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)