反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

JAVA环境变量注意事项

  • 文档创建者:知识库
  • 历史版本:6
  • 最近更新:Wendy123456 于 2021-10-22
  • 1. 概述

    本文介绍因 JAVA 环境变量配置有问题导致的一些报错及解决方案。

    注:FineReport 支持的 JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。

    2. 示例

    2.1 日志存在报错:Unsupported major.minor version 52.0

    2.1.1 现象一:启动日志出现此报错,启动失败,访问平台404

    原因分析

    FR10.0 从 2020-08-03 开始就不再支持 JDK1.7 及以下版本,仅支持 JDK1.8 。

    解决方案

    更换JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。

    2.1.2 现象二:工程运行中出现此报错,存在对应插件无法使用

    原因分析

    插件编译使用的 JDK 版本高于运行的环境变量的 JDK 版本。

    解决方案

    官方发布的插件编译版本都是不高于 JDK1.8 的,JAVA环境换成 JDK1.8 即可。

    2.2 启动失败:Fine assist start failed.

    2.2.1 现象一

    问题描述

    日志报错存在:Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed

    原因分析

    Windows 下安装 JDK 会同时安装一个独立的 jre ,独立安装的 jre 下没有 attach.dll 这个文件,FR10.0 启动需要调用这个文件。

    解决方案

    配置 JRE_HOME 不能指向独立安装的 jre ,必须使用%JAVA_HOME%\jre

    2.2.2 现象二

    问题描述

    日志报错存在:Caused by: java.lang.UnsatisfiedLinkError: sun.tools.attach.LinuxVirtualMachine.isLinuxThreads()Z

    原因分析

    Windows 下部署却放了 Linux 的 tools.jar 。

    解决方案

    %JAVA_HOME%\lib获取 tools.jar 放到webroot/WEB-INF/lib下或者tomcat/lib下。

    2.2.3 现象三

    问题描述

    日志报错存在:Caused by: com.sun.tools.attach.AgentLoadException: Failed to load agent library

    1)原因一

    原因:使用的 JDK 存在问题,可能是位数不对,也可能是 JDK 不完整,少了部分功能。

    解决方案:不确认的话先用 uname 获取下操作系统版本,再安装对应版本的 JDK ,注意 x86 指的是 intel 的操作系统架构,x86_64是 64 位,i586 是32位的。

    2)原因二

    原因:指向的 FineAssist_xx.so 文件存在问题,无法加载。

    解决方案:重新从 core 包中获取 FineAssist_xx.so 文件,涉密机重新安装下 so 文件。

    2.2.4 现象四

    问题描述

    非 JDK 导致的类似报错,如:Caused by: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded

    这个报错看起来和 JDK 问题导致的报错很像,但是却不一定是 JDK 导致的。

    原因分析

    /tmp 目录无法写入文件,可能导致这个现象的原因是:

    • 普通用户没有权限。

    • /tmp 所在磁盘空间已满。

    解决方案

    • 若没有权限,/tmp目录的权限开放即可。

    • 若磁盘空间了,则清理下对应磁盘的空间。

    2.3 部分 JDK 版本存在的问题

    2.3.1 jdk1.8.0_65以下版本可能会导致启动闪退

    问题描述

    日志报错存在:java.lang.IllegalArgumentException: object is not an instance of declaring class

    原因分析

    bytebuddy 版本不兼容。

    解决方案

    升级 JDK 版本,建议升级到较高版本的 JDK1.8 。

    2.3.2 jdk1.8.0_171可能导致模板预览空白

    问题描述

    所有模板预览空白。

    原因分析

    oracle1.8.0_171_b11 会导致模板预览空白。

    解决方案

    更换JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。

    3. Tomcat 指定 JDK

    3.1 Windows 系统

    修改 tomcat/bin 下的 catalina.bat(以部署包为例),如下图所示:

    86.png

    3.2 Linux 系统

    修改 tomcat/bin 下的 catalina.sh(以部署包为例),如下图所示:

    1623071760726981.png

    Linux 版部署包下指定 JDK 路径是特殊要求的,必须是定义了CATALINA_HOME之后,初次调用 JAVA_HOME 之前,所以只能加这个位置。

    非部署包可以指向绝对路径下的 JDK ,没有 CATALINA_HOME 的限制,就只要添加在初次调用 JAVA_HOME 之前即可。


    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526