gpt4 book ai didi

java - 如何在 java 中加载和使用 native 库?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:59:09 25 4
gpt4 key购买 nike

我有一个 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

关于java - 如何在 java 中加载和使用 native 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com