今天小編給大家分享一下tomcat啟動(dòng)報(bào)錯(cuò)environments was not found on the java.library.path怎么解決的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司十多年經(jīng)驗(yàn)成就非凡,專業(yè)從事網(wǎng)站制作、成都做網(wǎng)站,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文營銷,廣告投放等。十多年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!
tomcat 啟動(dòng)出現(xiàn)信息如下:
信息: the apr based apache tomcat native library which allows optimal performance in production environments was not found on the java.library.path:xxxx
出現(xiàn)原因分析:
tomcat建議使用apache的apr,來更好的運(yùn)行tomcat;
apache的apr 的介紹
apr(apache portable run-time libraries,apache可移植運(yùn)行庫)的目的如其名稱一樣,主要為上層的應(yīng)用程序提供一個(gè)可以跨越多操作系統(tǒng)平臺(tái)使用的底層支持接口庫。在早期 的apache版本中,應(yīng)用程序本身必須能夠處理各種具體操作系統(tǒng)平臺(tái)的細(xì)節(jié),并針對(duì)不同的平臺(tái)調(diào)用不同的處理函數(shù)。
隨著apache的進(jìn)一步開發(fā),apache組織決定將這些通用的函數(shù)獨(dú)立出來并發(fā)展成為一個(gè)新的項(xiàng)目。這樣,apr的開發(fā)就從apache中獨(dú)立出來,apache僅僅是使用 apr而已。
apr使得平臺(tái)細(xì)節(jié)的處理進(jìn)行下移。對(duì)于應(yīng)用程序而言,它們根本就不需要考慮具體的平臺(tái),不管是unix、linux還是window,應(yīng)用程序執(zhí)行的接口基本都是統(tǒng)一一致的。因此對(duì)于apr而言,可移植性和統(tǒng)一的上層接口是其考慮的一個(gè)重點(diǎn)。而apr最早的目的并不是如此,它最早只是希望將apache中用到的所有代碼合并為一個(gè)通用的代碼庫,然而這不是一個(gè)正確的策略,因此后來apr改變了其目標(biāo)。有的時(shí)候使用公共代碼并不是一件好事,比如如何將一個(gè)請(qǐng)求映射到線程或者進(jìn)程是平臺(tái)相關(guān)的,因此僅僅一個(gè)公共的代碼庫并不能完成這種區(qū)分。apr的目標(biāo)則是希望安全合并所有的能夠合并的代碼而不需要犧牲性能。
apr的最早的一個(gè)目標(biāo)就是為所有的平臺(tái)(不是部分)提供一個(gè)公共的統(tǒng)一操作函數(shù)接口,這是一個(gè)非常了不起的目的,當(dāng)然也是不現(xiàn)實(shí)的一個(gè)目標(biāo)。我們不可能支持所有平臺(tái)的所有特征,因此apr目前只能為大多數(shù)平臺(tái)提供所有的apr特性支持,包括win32、os/2、beos、darwin、linux等等。為了能夠?qū)崿F(xiàn)這個(gè)目標(biāo),apr開發(fā)者必須為那些不能運(yùn)行于所有平臺(tái)的特性創(chuàng)建了一系列的特征宏(feature macros)以在各個(gè)平臺(tái)之間區(qū)分這些特征。這些特征宏定義非常簡單,通常用apr_has_feature參數(shù)設(shè)置:
如果某個(gè)平臺(tái)具有這個(gè)特性,則該宏必須設(shè)置為true,比如linux和window都具有內(nèi)存映射文件,同時(shí)apr提供了內(nèi)存映射文件的操作接口,因此在這兩個(gè)平臺(tái)上,apr_has_mmap宏必須設(shè)置,同時(shí)ap_mmap_*函數(shù)應(yīng)該將磁盤文件映射為內(nèi)存并返回適當(dāng)?shù)臓顟B(tài)碼。如果你的操作系統(tǒng)并不支持內(nèi)存映射,那么apr_has_mmap必須設(shè)置為0,而且所有的ap_mmap_*函數(shù)也可以不需要定義。第二步就是對(duì)于那些在程序中使用了不支持的函數(shù)必須提出警告。
解決方法一:
下載與你tomcat對(duì)應(yīng)版本的 tcnative-1.dll,放到apache-tomcat-7.0.57\bin 目錄下,重啟tomcat。
如果你不清楚版本,你隨便下載一個(gè)版本,放進(jìn)目錄里面,在重啟tomcat 的時(shí)候,會(huì)有提示你合適的 tcnative-1.dll 版本。
1、
2.
3.
4.
解決方法二、
這是一個(gè)apr的問題,因?yàn)閠omcat需要依賴apr來優(yōu)化性能,就需要安裝apr
1、首先安裝apr,采用源碼安裝的方式,默認(rèn)安裝在:/usr/local/apr
wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz
tar -zxvf apr-1.5.0.tar.gz
cd apr-1.5.0
./configure
make
make install
2、接下來安裝tomcat-native,這個(gè)gz包在tomcat的bin目錄下面已經(jīng)存在了,直接解壓tomcat-native;
進(jìn)入目錄:cd tomcat-native-1.2.7-src/native,然后編譯安裝:
./configure --with-apr=/usr/local/apr --with-java-home="/usr/lib/jvm/java-1.7.0" --with-ssl=yes
如果下載的tomcat版本較新的話,編譯安裝會(huì)出現(xiàn)openssl版本不一致的問題,無法安裝,如下錯(cuò)誤:
checking openssl library version >= 1.0.2... configure: error: your version of openssl is not compatible with this version of tcnative
這事就需要下載一個(gè)版本低一點(diǎn)的tomcat-native包:
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/native/1.1.34/source/tomcat-native-1.1.34-src.tar.gz
上面的gz包下載下來之后,放到tomcat的bin目錄下去,解壓,進(jìn)入目錄:cd tomcat-native-1.1.20-src/jni/native,再編譯安裝
3、編譯安裝成功之后,在tomcat的bin目錄下,新建一個(gè)名為setenv.sh的文件
新建文件中加入內(nèi)容:
ld_library_path=$ld_library_path:$catalina_home/lib
export ld_library_path
4、經(jīng)過上述三步,第一個(gè)問退可以解決;
以上就是“tomcat啟動(dòng)報(bào)錯(cuò)environments was not found on the java.library.path怎么解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。