电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

瀏覽:2日期:2022-08-20 14:42:48

我的前一篇博客提到,我們公司項目的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即可。

二. 把DLL文件放在java.library.path路徑下,可以通過System.out.println(System.getProperty('java.library.path'));語句查看都有哪些系統調默認調用的文件路徑。Tomcat會在這些目錄下尋找要加載的文件、庫等。

三. 在使用JNA調用DLL時,總是提示無法加載相應的庫。把DLL文件放在各種路徑下都不起作用。

無奈之下,我換成JNI工具嘗試了一下,結果提示Can’t load IA 32-bit .dll on a AMD 64-bit platform。真相終于浮出了水面,原來是因為JDK和DLL系統不兼容(萬萬沒想到問題出在這里),于是我把DLL重新編譯成64位試了一下,成功部署。

然后我又換成JNA工具后試了一下也成功部署(早該換成JNI試一下,就是因為JNI使用步驟過于繁瑣,所以一直對JNA不死心,結果拖了很長時間),問題解決。

四.使用JNA的時候,大多數網上教程中Native.loadLibrary(“DLL name”, classname.class); 中的第一個參數都是相對路徑。按照編程經驗,這里應該也可以寫成絕對路徑,例如:

Native.loadLibrary(“C:Program Files (x86)Javajdk1.8.0_51bin DLLname.dll”, classname.class);

我這樣試著跑了一下,證明我的猜想是正確的。

五. 把DLL放在Tomcat文件夾下的bin文件中也可以找到。Linux下放在 /user/local/bin 中。這是我最后采用的方式。

總結:

問題可能出在方方面面,需要學習的還很多,經驗也相當重要。同時應該在自己的代碼中建立完整的異常報錯體系,和良好的異常處理習慣。但是我又擔心太多的分支處理會影響整體的性能。還是好好修煉內功才是王道啊。

補充知識:正確配置java jdk環境變量方式 及 配置tomcat后執行startup.bat閃退原因分析

我們用的很多軟件都需要配置環境變量,有的軟件會自動配置環境變量,不需要我們手動配置.而有的必須手動配置環境變量,比如git, eclipse等.

下面分享一下正確配置java環境變量的方法.因為很多軟件的運行都需要基于配置java環境變量的基礎上.

以配置jdk1.8為例:

1 安裝jdk1.8

如圖中所以,打開jdk-xxx.exe,進行安裝jdk,事先建兩個文件夾jdk,jre,用于分別作為jdk和jre的安裝文件夾

2 配置環境變量

安裝完之后,就是配置環境變量:

JAVA_HOME -- 變量值就是jdk的主目錄,圖中已用藍色標出(配置JAVA_HOME變量值時,末尾一定不要加分號)

Path -- 需要配置兩個,jdk的bin目錄和jdk下的jre的bin目錄,如圖中所示:

即 %JAVA_HOME%bin;%JAVA_HOME%jrebin;

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

JAVA_HOME和Path配置截圖:

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

配置完之后,可以打開Windows+R.輸入cmd,打開dos窗口,輸入 java 和 javac -version (或java version)來進行驗證java環境變量是否配置成功和查看所配置的jdk版本信息

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

注意:

有些軟件需要嚴格配置java環境變量.比如在配置Tomcat后,執行startup.bat手動啟動tomcat會閃退.原因就是環境變量沒有正確配置.

右鍵startup.bat,編輯,在文本的最后敲上pause,保存后重新運行startup.bat, 這時候窗口不會再閃退,而是停留在桌面上,如果有錯誤信息,這時候會顯示出來,可以根據提示確定是哪里出錯.進而針對性解決.其實90%的原因就是java環境變量沒有正確配置

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

調試成功后,記得把pause去掉

解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題

(注意;有時java環境變量雖沒有正確配置,但不影響eclipe的運行.但若沒有正確配置java環境變量,就會導致配置tomcat后,執行startup.bat出現閃退現象.)

正確配置java環境變量方式,見前面所示。

以上這篇解決Java 部署Tomcat時使用jni和jna調用DLL文件的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 南京泽朗生物科技有限公司| 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易| 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 焦作网 WWW.JZRB.COM | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 |