因此,在作为Java web应用程序运行时不会加载库
我在这里面找了很多。但却找不到合适的解决办法。问题就在这里 我有一些.so文件要加载到我的java应用程序中 我用main方法创建了一个Java类,并使用System.load()加载它强>因此,在作为Java web应用程序运行时不会加载库,java,tomcat,shared-libraries,Java,Tomcat,Shared Libraries,我在这里面找了很多。但却找不到合适的解决办法。问题就在这里 我有一些.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/
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文件位置
setenv.sh,catalina.sh在JAVA\u选项中。但都不管用
一些我甚至不理解的解决方案
有人能给出一步一步的过程吗
在tomcat中将so文件放在哪里?
我应该编辑哪个文件,应该添加什么?
我找了很多。但大多数答案我都不明白 在Tomcat等web容器中运行应用程序时,将不会调用main方法 如果您想在容器启动时加载这些库,那么我建议使用ContextListener 尝试谷歌搜索“java上下文侦听器示例”-您将获得大量的点击率和大量的示例
您可能还需要将这些库添加到Unix库路径中。在tomcat启动脚本中这样做通常很方便。library path变量的名称取决于unix风格,因此我恐怕无法告诉您该路径是什么。可能重复@chrylis,我不想制作一个Jar和所有内容。我想把这些SO文件放在tomcat中(如果需要的话)并加载这些文件。或者在tomcat的一些配置文件中,我应该能够提到SO文件的位置(我不知道是哪个配置文件)?我正在使用Ubuntuyes-startup.sh(或者可能是catalina.sh)。这是tomcat的启动脚本,而不是整个unix安装的启动脚本