gpt4 book ai didi

java - 作为 Java Web 应用程序运行时未加载 SO 库

转载 作者:行者123 更新时间:2023-11-28 22:03:01 25 4
gpt4 key购买 nike

我在So中搜索了很多。但找不到合适的解决方案。问题来了

我有一些 .so 文件要加载到我的 java 应用程序中。

我使用 main 方法创建了一个 Java 类并使用 System.load(); 加载它

System.load("/home/myfolder/TFS-SDK-11.0.0/redist/native/linux/x86_64/libnative_auth.so");        
System.load("/home/myfolder/TFS-SDK-11.0.0/redist/native/linux/x86_64/libnative_console.so");

然后是我的 Java 代码。当我将该类作为 Java 应用程序运行时,它运行良好。

然后我在我的 Java Web 应用程序中添加了相同的代码。我在 tomcat 中运行它。但是它显示了一些错误

Exception in thread "main" java.lang.UnsatisfiedLinkError

我发现这是因为它没有加载库文件。

当我在 google 中搜索时,我找到了一些解决方案,但对我没有帮助。我尝试在

中添加so文件位置 JAVA_OPTS 中的

setenv.shcatalina.sh。但都没有用。

有些解决方案我什至不明白。

谁能给出一步一步的过程

tomcat的so文件放哪里?我应该编辑哪个文件以及我应该添加什么?

我搜索了很多。但大多数答案我不明白。

最佳答案

当您在 Tomcat 等 Web 容器中运行您的应用时,您的 main 方法将不会被调用。

如果你想在容器启动时加载这些库,那么我建议使用 ContextListener。

尝试在 google 上搜索“java 中的上下文监听器示例”——您将获得大量点击和大量示例。

您可能还需要将这些库添加到您的 Unix 库路径中。在您的 tomcat 启动脚本中执行此操作通常很方便。库路径变量的名称依赖于 unix 风格,所以恐怕我不能告诉你那个路径是什么。

关于java - 作为 Java Web 应用程序运行时未加载 SO 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20159790/

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