历史版本8 :服务器部署引入tools.jar 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

服务器部署FineReport10.0工程过程中,如遇到下图所示报错500的情况。

222

2. 原因编辑


在FineReport V10.0 & FineBI V5.0中,我们引入了Java Agent和JVMTI技术,分别用于AOP编程和关键类保护以及强制内存回收的实现。

不管是Java Agent还是JVMTI,都是JVM的Agent,区别在于前者是java的实现,后者是C++实现,因此在运行时,除了需要有JRE以外,还额外需要JDK中的tools.jar(包含java编译器、动态加载agent等的工具包)。

tools.jar是一个平台相关的工具包,不同的平台(Windows、Linux、OS X等),不同的版本的JRE,能正常使用的tools.jar的版本都是不同的,因此在使用的时候,需要注意匹配。最简单的匹配方式,就是将本机的JDK目录下的lib/tools.jar加入Web服务器的ClassPath。  

3. 解决方案编辑

3.1 方法一
注:这里以tomcat为例进行演示,别的容器也是拷贝到对应的容器的lib下。
%JAVA_HOME%/jdk/lib下的tools.jar拷贝到部署的服务器中,拷贝到%TOMCAT_HOME%/lib下和%TOMCAT_HOME%/webapps/工程名/WEB_INF/lib下,如下图所示:
222
3.2 方法二
设置运行文件catalina.bat上classpath的值指向tools.jar,即在catalina.sh加一行CLASSPATH="$CLASSPATH":"$JAVA_HOME"/lib/tools.jar如下图所示:
windows下
222
linux下
222

4. 注意事项编辑

若环境变量指向的%JRE_HOME%/bin下无attach.dll文件,还需将%JAVA_HOME%/jdk/jre/bin下的attach.dll拷贝到此路径下。