The APR based Apache Tomcat Native library

sudo apt-get install libtcnative-1

最近使用tomcat 6.0.33这个版本,启动的时候有个提示:

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:...

tomcat可以整合本地apr,在处理静态资源的时候速度更快,总而言之就是使用本地的apr库提升处理效率。在网上一查,很多人提到了这个问题,解决这个问题其实很简单,但window和linux处理方法不太一样。下面就分别给出解决方法。

  • window平台

在window下启动的时候会提示was not found on the java.library.path: C:\Tools\jdk1.6.0_29\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS …,这个根据每个人的环境不同,可能给出的路径也不太一样,只要把Native library拷贝到上述路径之一即可,Native library是什么呢,网上有提供下载,其实不要那么麻烦,在tomcat的bin目录下就有,文件名是:tcnative-1.dll。例如我把这个文件拷贝到C:\Tools\jdk1.6.0_29\bin下,然后再启动tomcat就没有上述的提示了。

  • linux平台

linux下比较复杂一点,因为tomcat包中没有提供编译好的so文件,所以需要自己编译,tomcat发行版中提供了源码,文件为tomcat的bin/tomcat-native.tar.gz,另外编译时候需要依赖APR 1.2、OpenSSL,如果机器上没有安装,可以使用 yum -y install apr-devel openssl-devel 来进行安装。解压tomcat-native.tar.gz后会得到一个tomcat-native-1.1.20-src的目录,Native library的源文件位于tomcat-native-1.1.20-src/jni/native下,进入该目录,执行./configure,可能会看到configure: error: APR could not be located. Please use the –with-apr option.的错误提示,这个时候用–with-apr制定一下apr的位置即可,我使用的是

./configure --with-apr=/usr/bin/apr-1-config

,顺利通过,然后执行 make && make install 编译就算搞定,此时应该可以在/usr/local/apr/lib/下看到一个名为 libtcnative-1.so 的文件,拷贝该文件到tomcat启动时提示的任何一个路径即可。


<think>好的,我现在需要解决用户提出的Apache Tomcat Native库未找到的问题。用户遇到了“Apache Tomcat Native library not found on java.library.path”的错误,我需要给出解决方案。 首先,我得回忆一下Tomcat Native库的作用。Tomcat Native库(通常称为APR库)是为了提升Tomcat性能而设计的,它使用本地代码来处理网络和文件I/O操作,特别是在HTTPS连接时可以提高性能。如果这个库没有正确安装或配置,Tomcat在启动时就会报错。 接下来,我需要考虑用户可能的问题点。根据经验,这个错误通常有几个原因:1)库未正确安装;2)环境变量配置不正确;3)库文件路径没有包含在java.library.path中;4)版本不兼容。 根据引用内容,用户提到了Tomcat的安装路径(比如c:\myWebProject\tomcat),以及编译Servlet时使用的类路径。这可能意味着用户是在Windows环境下使用Tomcat,并且可能没有正确安装或配置Tomcat Native库。另外,用户之前可能尝试过配置JDBC连接池或调整web服务器,但引用中的信息可能不完全相关,我需要专注于Native库的问题。 解决方案的步骤可能包括: 1. 确认是否已安装Tomcat Native库。用户可能需要从Apache网站下载对应的二进制文件,或者通过构建源代码来生成库文件。在Windows上,可能需要下载.dll文件,而在Linux上则是.so文件。 2. 检查安装位置是否正确。通常,库文件应放在系统库路径中,比如Windows的System32目录,或者通过java.library.path指定。 3. 配置Tomcat以使用Native库。可能需要设置环境变量,如CATALINA_HOME或JAVA_OPTS,将库路径包含进去。 例如,在启动Tomcat时,可以通过设置JAVA_OPTS来指定java.library.path: ``` JAVA_OPTS="-Djava.library.path=/path/to/native/lib" export JAVA_OPTS # 在Linux/Mac上 ``` 或者在Windows的启动脚本中设置: ``` set "JAVA_OPTS=-Djava.library.path=C:\path\to\native\lib" ``` 4. 检查版本兼容性。确保下载的Native库与Tomcat版本和操作系统架构(32位/64位)匹配。例如,Tomcat 9需要对应版本的Native库,且64位系统需要64位的库文件。 5. 重新启动Tomcat服务,使配置生效,并检查日志确认问题是否解决。 此外,用户可能需要确认是否确实需要使用APR库。如果只是开发环境,或者性能要求不高,可能可以选择忽略该警告,但生产环境中建议解决。 现在,我需要将这些步骤组织成清晰的解决方案,确保用户能够逐步操作,同时引用相关参考资料中的信息,如路径设置等。例如,引用[1]中提到了Tomcat的安装路径和编译时的类路径配置,这可能帮助用户理解如何设置库路径。引用[3]提到切换服务器为Tomcat,可能涉及配置文件的调整,虽然不直接相关,但可能提示用户检查server.xml中的配置是否启用了APR连接器。 最后,需要验证这些步骤是否覆盖了常见的问题点,并给出具体的命令或操作示例,比如下载链接、设置环境变量的具体方法等,确保用户能够顺利执行。</think>### 解决方案:Apache Tomcat Native库未找到的解决方法 当出现`Apache Tomcat Native library not found on java.library.path`错误时,通常是因为Tomcat未正确加载APRApache Portable Runtime)本地库。以下是逐步解决方案: --- #### **1. 确认是否必须使用APR库** - **场景判断**:APR库主要用于提升HTTPS性能、优化I/O操作。若仅为本地开发或测试,可忽略此警告(不影响Tomcat基本功能)[^3]。 - **生产环境**:建议修复以提升性能。 --- #### **2. 安装Tomcat Native库** ##### **Windows系统** 1. **下载预编译包**: - 访问[Apache Tomcat Native下载页](https://tomcat.apache.org/download-native.cgi),选择与Tomcat版本匹配的`tomcat-native-[version]-win32-bin.zip`(例如32位或64位)。 2. **解压文件**: - 将压缩包中的`.dll`文件(如`tcnative-1.dll`)复制到系统库目录: - 默认路径:`C:\Windows\System32`。 - 或指定自定义路径(需配置环境变量)。 ##### **Linux系统** 1. **安装依赖**: ```bash # Ubuntu/Debian sudo apt-get install libapr1-dev libssl-dev # CentOS/RHEL sudo yum install apr-devel openssl-devel ``` 2. **编译安装**: ```bash cd $CATALINA_HOME/bin # 进入Tomcat的bin目录 tar -xzvf tomcat-native.tar.gz cd tomcat-native-*/native ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME make && sudo make install ``` --- #### **3. 配置环境变量** - **设置`JAVA_LIBRARY_PATH`**: - **Windows**: ```bat set "JAVA_OPTS=-Djava.library.path=C:\path\to\native\lib" ``` (添加到Tomcat启动脚本`catalina.bat`中) - **Linux**: ```bash export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH ``` (添加到`~/.bashrc`或`catalina.sh`) --- #### **4. 验证配置** 1. **重启Tomcat**: ```bash ./catalina.sh run # Linux catalina.bat run # Windows ``` 2. **检查日志**: - 若成功加载APR库,日志会显示: ``` Loaded APR-based Apache Tomcat Native library. ``` --- #### **5. 常见问题排查** - **路径错误**:确认`.dll`或`.so`文件路径是否包含在`java.library.path`中。 - **版本冲突**:确保Native库与Tomcat和OpenSSL版本兼容。 - **权限问题**(Linux): ```bash sudo chmod 755 /usr/local/apr/lib/libtcnative-1.so ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值