我在So中搜索了很多。但找不到合适的解决方案。这是问题
我在我的java应用程序中加载了一些 .so 文件。
我使用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
我发现这是因为它没有加载库文件。
当我在谷歌搜索时,我找到了一些解决方案,但它没有帮助我。我尝试在
中添加so文件位置 JAVA_OPTS 中的setenv.sh , catalina.sh 。但都没有效果。
我甚至不理解的一些解决方案。
有人可以逐步处理
将所有文件放在tomcat中的位置? 我应该编辑哪个文件以及我应该添加什么?
我搜索了很多。但大多数答案我都不明白。
答案 0 :(得分:0)
在Tomcat等Web容器中运行应用程序时,不会调用main方法。
如果要在容器启动时加载这些库,那么我建议使用ContextListener。
尝试google“java中的上下文监听器示例” - 您将获得大量点击并有大量示例可供使用。
您可能还需要将这些库添加到Unix库路径中。在tomcat启动脚本中执行此操作通常很方便。库路径变量的名称依赖于unix风格,所以我不能告诉你我害怕的那条路径。