如何处理Java部署Tomcat时JNI与JNA调用DLL文件的技术难题?

2026-04-30 07:242阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1191个文字,预计阅读时间需要5分钟。

如何处理Java部署Tomcat时JNI与JNA调用DLL文件的技术难题?

我的前一篇博客提到,在我们公司的项目restful框架中,需要用到到底层的DLL+C++库。经过测试验证,最终选择采用JNA方法来调用DLL库。之后,基于框架在IDEA中的jetty服务中调试成功,但部署到后出现问题。

我的前一篇博客提到,我们公司项目的restful框架中要用到底层的DLL C++库,最后经过测试验证结果选择采用JNA方法来调DLL库。

之后基础框架在IDEA中的jetty服务中调试成功,但是在部署到Tomcat上时出现了无法加载DLL库的状况,只能现学现卖了。

一. 把DLL文件放在Tomcat下的方法:

在Tomcat中加载dll,供其它接口调用:

在Tomcat目录根下新建一个文件夹,这里就叫DLL吧,<tomcat_home>/DLL;

把需要用到的dll放入新建的DLL目录下;

编辑<tomcat_home>/conf/catalina.properties,在common.loader后面追加${catalina.home}/DLL;

编辑<tomcat_home>/bin/目录下的catalina.bat,在rem Copy CATALINA_BASE from CATALINA_HOME if not defined的段落中增加如下语句:

set LD_LIBRARY_PATH=%CATALINA_BASE%\DLL

set JAVA_OPTS=-Djava.library.path=%CATALINA_BASE%\DLL%JAVA_OPTS%

保存重新启动Tomcat,deploy war即可。

阅读全文

本文共计1191个文字,预计阅读时间需要5分钟。

如何处理Java部署Tomcat时JNI与JNA调用DLL文件的技术难题?

我的前一篇博客提到,在我们公司的项目restful框架中,需要用到到底层的DLL+C++库。经过测试验证,最终选择采用JNA方法来调用DLL库。之后,基于框架在IDEA中的jetty服务中调试成功,但部署到后出现问题。

我的前一篇博客提到,我们公司项目的restful框架中要用到底层的DLL C++库,最后经过测试验证结果选择采用JNA方法来调DLL库。

之后基础框架在IDEA中的jetty服务中调试成功,但是在部署到Tomcat上时出现了无法加载DLL库的状况,只能现学现卖了。

一. 把DLL文件放在Tomcat下的方法:

在Tomcat中加载dll,供其它接口调用:

在Tomcat目录根下新建一个文件夹,这里就叫DLL吧,<tomcat_home>/DLL;

把需要用到的dll放入新建的DLL目录下;

编辑<tomcat_home>/conf/catalina.properties,在common.loader后面追加${catalina.home}/DLL;

编辑<tomcat_home>/bin/目录下的catalina.bat,在rem Copy CATALINA_BASE from CATALINA_HOME if not defined的段落中增加如下语句:

set LD_LIBRARY_PATH=%CATALINA_BASE%\DLL

set JAVA_OPTS=-Djava.library.path=%CATALINA_BASE%\DLL%JAVA_OPTS%

保存重新启动Tomcat,deploy war即可。

阅读全文