environments was not found on the java.library.path 问题的解决方法

 更新时间:2016年08月20日 09:26:53   投稿:mdxy-dxy  
The APR based Apache Tomcat Native library which allows optimal performance in production 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。

下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/

如果你不清楚版本,你随便下载一个版本,放进目录里面,在重启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、经过上述三步,第一个问退可以解决;

相关文章

  • linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)

    linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)

    date命令可以用来显示和修改系统日期时间,本文对其做了详细说明,最近提供计算指定年份的母亲节和父亲节的日期脚本示例,大家参考使用吧
    2013-12-12
  • Apache 支持CGI程序和SSI程序的设置方法

    Apache 支持CGI程序和SSI程序的设置方法

    在这里,网页教学网和大家探讨如何修改服务器选项让服务器能提供简单的动态网页内容,也就是支持CGI程序及 Server-Side Include(SSI)程序。
    2009-10-10
  • Linux系统下如何实现修改主机名

    Linux系统下如何实现修改主机名

    这篇文章主要介绍了Linux系统下如何实现修改主机名问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • linux下scp和sftp命令使用详解

    linux下scp和sftp命令使用详解

    大家好,本篇文章主要讲的是linux下scp和sftp命令使用详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 详解Ubuntu中apt和apt-get命令的区别

    详解Ubuntu中apt和apt-get命令的区别

    在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面,apt和apt-get是两个常用的命令行工具,用于安装、更新、删除和管理软件包,本文给大家介绍了Ubuntu中apt和apt-get命令的区别,需要的朋友可以参考下
    2024-06-06
  • VMware虚拟机安装 CentOS 8 (1905)系统的教程图解

    VMware虚拟机安装 CentOS 8 (1905)系统的教程图解

    这篇文章主要介绍了CentOS 8 (1905)系统安装,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Linux如何实现给/根目录扩容

    Linux如何实现给/根目录扩容

    这篇文章主要介绍了Linux如何实现给/根目录扩容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • CentOS7配置httpd虚拟主机教程

    CentOS7配置httpd虚拟主机教程

    这篇文章主要为大家详细介绍了CentOS7配置httpd虚拟主机教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • linux如何为已存在的用户创建home目录

    linux如何为已存在的用户创建home目录

    这篇文章主要介绍了linux如何为已存在的用户创建home目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 如何为CentOS 7配置静态IP地址的两种方法

    如何为CentOS 7配置静态IP地址的两种方法

    本篇文章主要介绍了如何为CentOS 7配置静态IP地址的几种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02

最新评论