您好,登錄后才能下訂單哦!
今天小編給大家分享一下tomcat啟動報錯environments was not found on the java.library.path怎么解決的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
tomcat 啟動出現信息如下:
信息: the apr based apache tomcat native library which allows optimal performance in production environments was not found on the java.library.path:xxxx
出現原因分析:
tomcat建議使用apache的apr,來更好的運行tomcat;
apache的apr 的介紹
apr(apache portable run-time libraries,apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程序提供一個可以跨越多操作系統平臺使用的底層支持接口庫。在早期 的apache版本中,應用程序本身必須能夠處理各種具體操作系統平臺的細節,并針對不同的平臺調用不同的處理函數。
隨著apache的進一步開發,apache組織決定將這些通用的函數獨立出來并發展成為一個新的項目。這樣,apr的開發就從apache中獨立出來,apache僅僅是使用 apr而已。
apr使得平臺細節的處理進行下移。對于應用程序而言,它們根本就不需要考慮具體的平臺,不管是unix、linux還是window,應用程序執行的接口基本都是統一一致的。因此對于apr而言,可移植性和統一的上層接口是其考慮的一個重點。而apr最早的目的并不是如此,它最早只是希望將apache中用到的所有代碼合并為一個通用的代碼庫,然而這不是一個正確的策略,因此后來apr改變了其目標。有的時候使用公共代碼并不是一件好事,比如如何將一個請求映射到線程或者進程是平臺相關的,因此僅僅一個公共的代碼庫并不能完成這種區分。apr的目標則是希望安全合并所有的能夠合并的代碼而不需要犧牲性能。
apr的最早的一個目標就是為所有的平臺(不是部分)提供一個公共的統一操作函數接口,這是一個非常了不起的目的,當然也是不現實的一個目標。我們不可能支持所有平臺的所有特征,因此apr目前只能為大多數平臺提供所有的apr特性支持,包括win32、os/2、beos、darwin、linux等等。為了能夠實現這個目標,apr開發者必須為那些不能運行于所有平臺的特性創建了一系列的特征宏(feature macros)以在各個平臺之間區分這些特征。這些特征宏定義非常簡單,通常用apr_has_feature參數設置:
如果某個平臺具有這個特性,則該宏必須設置為true,比如linux和window都具有內存映射文件,同時apr提供了內存映射文件的操作接口,因此在這兩個平臺上,apr_has_mmap宏必須設置,同時ap_mmap_*函數應該將磁盤文件映射為內存并返回適當的狀態碼。如果你的操作系統并不支持內存映射,那么apr_has_mmap必須設置為0,而且所有的ap_mmap_*函數也可以不需要定義。第二步就是對于那些在程序中使用了不支持的函數必須提出警告。
解決方法一:
下載與你tomcat對應版本的 tcnative-1.dll,放到apache-tomcat-7.0.57\bin 目錄下,重啟tomcat。
如果你不清楚版本,你隨便下載一個版本,放進目錄里面,在重啟tomcat 的時候,會有提示你合適的 tcnative-1.dll 版本。
1、
2.
3.
4.
解決方法二、
這是一個apr的問題,因為tomcat需要依賴apr來優化性能,就需要安裝apr
1、首先安裝apr,采用源碼安裝的方式,默認安裝在:/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,這個gz包在tomcat的bin目錄下面已經存在了,直接解壓tomcat-native;
進入目錄: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版本較新的話,編譯安裝會出現openssl版本不一致的問題,無法安裝,如下錯誤:
checking openssl library version >= 1.0.2... configure: error: your version of openssl is not compatible with this version of tcnative
這事就需要下載一個版本低一點的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目錄下去,解壓,進入目錄:cd tomcat-native-1.1.20-src/jni/native,再編譯安裝
3、編譯安裝成功之后,在tomcat的bin目錄下,新建一個名為setenv.sh的文件
新建文件中加入內容:
ld_library_path=$ld_library_path:$catalina_home/lib
export ld_library_path
4、經過上述三步,第一個問退可以解決;
以上就是“tomcat啟動報錯environments was not found on the java.library.path怎么解決”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。